Jiao Meng

Focus on .NET component development

博客园 首页 新随笔 联系 订阅 管理

8086CPU中和标志寄存器相关的东东:

  • ZF (Zero Flag): 零标志位。它记录相关指令执行后,其结果是否为0。
  • PF (Parity Flag): 奇偶标志位。它记录相关指令执行后,其结果的所有二进制位中1的个数是否为偶数。
  • SF (Sign Flag): 符号标志位。它记录相关指令执行后,其结果是否为负。
  • CF (Carry Flag): 进位标志位。它记录了无符号数运算结果的最高位向更高位的进位值,或从更高位的借位值。
  • OF (Overflow Flag): 溢出标志位。它记录了有符号数运算的结果是否发生了溢出。
  • CFOF的区别: CF对无符号数运算有意义,而OF对有符号数运算有意义。
  • adc (c - carry)  带进位加法指令。它利用了CF位上记录的进位值。
  • sbb (b - borrow)  带借位减法指令。它利用了CF位上记录的借位值。
  • cmp (compare)  比较指令。它的功能相当于减法指令,只是不保存结果。
  • je (e - equal)  ZF=1则转移
    jne (ne - not equal) ZF=0则转移
    jb (b - below)  CF=1则转移
    jnb (nb - not below) CF=0则转移
    ja (a - above)  CF=0且ZF=0则转移
    jna (na - not above) CF=1或ZF=1则转移
  • cmp指令和je等条件转移指令配合使用,可以实现根据比较结果进行转移的功能。
  • DF (Direction Flag)  方向标志位。在串处理指令中,控制每次操作后si,di的增减,0增1减。
  • movesb (b - byte)  传送一个字节。
    movesw (w - word) 传送一个字。
    rep movesb (rep - repeat) 循环执行字节串传送指令。
    rep movesw (rep - repeat) 循环执行字串传送指令。
  • cld (clear DF)  将DF置0。
    std (set DF)  将DF置1。
  • pushf (push flag)  将标志寄存器的值压栈。
  • popf (pop flag)  从栈中弹出数据送入标志寄存器。
  • Debug中标志位的表示:

标志位   值为1    值为0
OF         OV       NV
SF          NG       PL
ZF          ZR       NZ
PF          PE       PO
CF          CY       NC
DF          DN      UP

posted on 2004-12-24 16:49  Jiao Meng  阅读(796)  评论(0编辑  收藏  举报