DEBUG下标志位对照表[来自搜索引擎]

中为英文全拼或简拼(~为简化部分),单词中的大写部分为简写所取字符。
  标志名                     标志为1时          标志为0时
  OF[Overflow Flag]          ov[OVerflow]       nv[Not oVerflow]
  DF[Direction Flag]         dn[DowN]           up[UP]
  IF[Interrupt Flag]         ei[Enable I~t]     di[Disable I~t]
  SF[Sign Flag]              ng[NeGative sign]  pl[PLus sign]
  ZF[Zero Flag]              zr[ZeRo]           nz[Not Zero]
  AF[Auxiliary carry Flag]   ac[Auxiliary Carry]na[Not Aux~]
  PF[Parity Flag]            pe[Parity Even]    po[Parity Odd]
  CF[Carry Flag]             cy[CarrY]          nc[Not Carry]

 

加法指令:ADD、ADC、INC、XADD除了INC不影响CF标志位外,都影响条件标志位。
                  CF、ZF、SF、OF
                  CF最高位是否有进位
                  DF若两个操作数符号相同而结果符号与之相反OF=1,否则OF=0.

减法指令:SUB、SBB、DEC、NEG、CMP、CMPXCHG、CMPXCHG8B
                  前六种除了DEC不影响CF标志外都影响标志位。CMPXHG8B只影响ZF。
                  CF说明无符号数相减的溢出,同时又确实是被减数最高有效位向高位的借位。
                  OF位则说明带符号数的溢出
                  无符号运算时,若减数>被减数,有借位CF=1,否则CF=0.
                  OF若两个数符号相反,而结果的符号与减数相同则OF=1.否则OF=0.

乘法指令:MUL、IMUL
                  MUL:如果乘积高一半为0,则CF和OF位均为0,否则CF和OF均为1.
                  IMUL:如果高一半是低一半符号的扩展,则CF位和OF位均为0,否则就均为1.

除法指令:DIV、IDIV   对所有条件位均无定义。

逻辑指令:AND、OR、NOT、XOR、TEST
                   NOT不允许使用立即数,其它4条指令除非源操作数是立即数,至少要有一个操作数必须存放在寄存器中。另一个操作数则可以使用任意寻址方式。
                   NOT不影响标志位,其余4种CF、OF、置0,AF无定义,SF、ZF、PF位看情况而定。

定位扫描指令:BSF正向位扫描、BSR反向位扫描
                          源操作数可以是除立即数以外的任一种寻址方式,目的操作数必须是寄存器,影响ZF位。

posted @ 2010-07-15 22:57  飘啊飘  阅读(362)  评论(0编辑  收藏  举报