| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
- assume cs:code
 
  
- code segment
 
  
- start:        
 
 -         sub al,al;ZF=1   PF=1  SF=0
 
 -         mov al,1;ZF=1   PF=1  SF=0
 
 -         push ax;ZF=1   PF=1  SF=0
 
 -         pop bx;ZF=1   PF=1  SF=0
 
 -         add al,bl;ZF=0   PF=0  SF=0
 
 -         add al,10;ZF=0   PF=1  SF=0
 
 -         mul al;ZF=0   PF=1  SF=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 
从书上看,这些分别代表标志位   OF  DF IF ? ZF AF PF  CF 
第一行命令执行完了,结果应为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吧 |   
 
 
 
 |