检测点11.1
assume cs:codecode segment
start:
sub al,al;ZF=1 PF=1SF=0
mov al,1;ZF=1 PF=1SF=0
push ax;ZF=1 PF=1SF=0
pop bx;ZF=1 PF=1SF=0
add al,bl;ZF=0 PF=0SF=0
add al,10;ZF=0 PF=1SF=0
mul al;ZF=0 PF=1SF=0
code ends
end start
我的debug里显示FLAG的是 NV UP EI PL NZ NA PO NC而不是具体的1或0
第一行Sub Al,Al执行完后变成了 NV UP EI PL ZR NA PE NC
从书上看,这些分别代表标志位 OFDF IF ? ZF AF PFCF
第一行命令执行完了,结果应为0,所以ZR的含义应为ZF=1;结果里1的个数为0(偶数),所以PE的含义应为PF=1;
第二、三、四行执行完了所有标志位不变
第五行执行完了标志位变成 NV UP EI PL NZ MA PO NC 结果里1的个数为1(奇数),所以PO的含义应为PF=0
由此可猜测NZ的含义为ZF=0
不过我始终搞不懂?位代表SF还是TF,看在这么多条指令下去?位和SF一样没变就当做SF吧
页:
[1]