汇编语言标志寄存器在Debug中的表示

AX=0000     BX=0000    CX=0000    DX=0000   SP=FFEE  BP=0000  SI=0000  DI=0000
DS=***      ES=***     sS=***     CS=***    IP=0100  NV UP EI PL NZ NA PO NC
                                                      |  |     |  |     |  |          
                                                     OF DF    SF  ZF    PF  CF                                 

下面列出Debug对我们已知的标志位的表示。

标志        值为1的标一记        值为0的标记
of          OV                  NV
sf          NG                  PL
zf          ZR                  NZ
pf          PE                  PO
cf          CY                  NC
df          DN                  UP

常见运算标志位的解释

OF(overflow flag)溢出标志位 ,针对有符号运算使用,当运算有溢出 时 of = 1
sf (sign flag ) 符号标志位 ,sf的值为有符号数的符号位的值
zf(zero flag )零标志位,当结果为零时 zf=1
pf(pairty flag) 偶标志位 ,当结果中1的个数为偶数个是pf=1
cf(carry flag) 进位标志位,无符号运算时如果产生进位cf = 1
af(auxiliary flag )辅助进位标志位,当低半字节运算产生进位时af=1
常见的指令对标志寄存器中标志位的影响
add、adc、sub、sbb、imul、idiv、neg对六个运算标志位都可能产生影响
inc、dec不会对cf产生影响 对其他标志位可能会有影响,
mul、div只会对cf/of产生影响。
and、or、xor指令都能清cf/of为0 ,
not对标志位没影响,
TEST指令影响 sf/pf/zf。


发布日期:

所属分类: 编程 标签: