状态寄存器标志位对应状态值对应表

在debug中,每种标志位的状态值都存在二种值:0和1,它们使用大写英文来描述。例如:如遇到ZR值代表指令结果为0,NZ代表指令结果不为0;注意:它们的值在debug中,某状态下只显示一种值,要么是ZR要么是NZ;不能同时出现的。结合debug讲解下:
这些符号代表的就是标志寄存器里常用标志位的值。这个是符号值对应表:

溢出标志OF(Over flow flag)          OV(1)                         NV(0)
方向标志DF(Direction flag)           DN(1)                          UP(0)
中断标志IF(Interrupt flag)            EI(1)                           DI(0)
符号标志SF(Sign flag)               NG(1)                          PL(0)
零标志ZF(Zero flag)                ZR(1)                         NZ(0)
辅助标志AF(Auxiliary carry flag)      AC(1)                          NA(0)
奇偶标志PF(Parity flag)              PE(1)                          PO(0)
进位标志CF(Carry flag)             CY(1)                         NC(0)

--它们的状态值

OF(Overflow Flag溢出标志)     OV(Overflow发生溢出)    NV(Non-Overflow未溢出)

SF(Signal Flag符号标志)          NG(Negetive负号)           PL(Plus加号,正号)

ZF(Zero Flag等于0标志)           ZR(Zero为零)                  NZ(Non-Zero非零)

PF(Parity Flag奇偶标志)            PE(Parity Even偶数)        PO(Parity Odd奇数)

CF(Carry Flag进位标志)            CY(Carry有进位)            NC(Non-Carry无进位)

       实例讲解下:使用debug程序看看,r指令。

AX=0000  BX=0000  CX=0000  DX=0000  SP=FFEE  BP=0000  SI=0000  DI=0000

DS=0B04  ES=0B04  SS=0B04  CS=0B04  IP=0102   NV UP EI PL ZR NA PE NC

红色标注的就是这些状态位的值,它所代表的含义看上面。

也可以使用rf指令查询状态寄存器的有效位的值。

-rf

NV UP EI PL ZR NA PE NC

答案讲解:

sub al,al     指令结果:(al)-(al)=0  (寄存器al的值为0)

al=0h        ZF=1        PF=1        SF=0     

使用debug查看:

-rf

NV UP EI PL ZR NA PE NC

ZR(Zero为零)   ZF=1  含义:指令结果为0;(另一种状态值:NZ    代表ZF=0  含义:指令结果不为0 )       

PE(Parity Even偶数) PF= 1  含义:指令结果中1的个数为偶数(因为al值为00000000,也就是说有0个1,0是偶数);(另一种状态值:PO  代表ZF=1  含义:指令结果中1的个数为计数)。这个有什么含义呢?

PL(Plus加号,正号) SF=0  含义:指令结果为非负数(在计算机中,存储0是按照计算机补码方式存储的,0代表的补码含义是什么?);(另一种状态值:NG  代表SF=1  含义:指令结果为负数)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值