监测点11.4问题
本帖最后由 loop 于 2011-5-29 23:24 编辑assume cs:code
code segment
start: mov ax, 0
push ax
popf
mov ax, 0fff0h
add ax, 0010h
;经过这句以后标志寄存器应该是0000000001000101 也就是0045, debug的时候怎么是1100001000101 也就是3047那,
pushf
pop ax
and al, 11000101b
and ah, 00001000b
mov ax, 4c00h
int 21h
code ends
end start
标志寄存器
CF OF SF ZF PF
1 0 0 1 1
3047h == 00110000 01000111B
8086的标志寄存器咱只看第 0 2 4 6 7 8 9 10 11 位,其他都是浮云。
这里得到的数据第0位是1,因为产生进位了;
第2位是1,因为结果有奇数个1;
第6位是1,因为结果进位之后为0。
其他位……都是浮云,debug带来的
页:
[1]