下面程序执行后:ax
寄存器中的值为?
mov ax,0
push ax
popf
mov ax,0fff0h
add ax,0010h
pushf
pop ax
and al,11000101b
and ah,00001000b
逐步分析:
- 前三行代码的功能是将标志寄存器清零
mov
指令不影响标志寄存器的值add
指令对标志寄存器有影响,0fff0h + 0010h = 10000h
,肉眼可见,发生了进位,下面对标志位逐个判断。
- 存在进位,CF
为1
- 结果中,"1"的个数是0个,偶数,PF
为1
-AF
寄存器暂时搁置(没学)
- 结果为0&