标志寄存器
条件标志:
CF(Carry Flag)进位标志:用于反映运算是否产生进位或借位。如果运算结果的最高位产生一个进位或借位,则CF置1,否则置0。运算结果的最高位包括字操作的第15位和字节操作的第7位。移位指令也会将操作数的最高位或最低位移入CF。
PF(Parity Flag)奇偶标志:用于反映运算结果低8位中“1”的个数。“1”的个数为偶数,则PF置1,否则置0。
AF(Auxiliary Carry Flag)辅助进位标志:在字节操作时低半字节向高半字节进位或借位,字操作时低字节向高字节进位或借位,AF置1,否则置0。
ZF(Zero Flag)零标志:用于判断结果是否为0。运算结果0,ZF置1,否则置0。
SF(Sign Flag)符号标志:用于反映运算结果的符号,运算结果为负,SF置1,否则置0。因为有符号数采用补码的形式表示,所以SF与运算结果的最高位相同。
OF(Overflow Flag)溢出标志:反映有符号数加减运算是否溢出。如果运算结果超过了8位或者16位有符号数的表示范围,则OF置1,否则置0。
控制标志:
TF(Trap Flag)陷阱标志:当TF被设置位1时,CPU进入单步模式,所谓单步模式就是CPU在每执行一步指令后都产生一个单步中断。主要用于程序的调试。8086/8088中没有专门用来置位和清零TF的命令,需要用其他办法。
IF(Interrupt Flag)中断标志:决定CPU是否响应外部可屏蔽中断请求。IF为1时,CPU允许响应外部的可屏蔽中断请求。
DF(Direction Flag)方向标志:决定串操作指令执行时有关指针寄存器调整方向。当DF为1时,串操作指令按递减方式改变有关存储器指针值,每次操作后使SI、DI递减。
各标志位名称、英文全称、标志值符号及含义一览:
标志位 标志位名称/英文 =1 =0
CF 进位标志/Carry Flag CY/Carry/进位 NC/No Carry/无进位
PF 奇偶标志/Parity Flag PE/Parity Even/偶 PO/Parity Odd/奇
AF 辅助进位标志/Auxiliary Carry Flag AC/Auxiliary Carry/进位 NA/No Auxiliary Carry/无进位
ZF 零标志/Zero Flag ZR/Zero/等于零 NZ/Not Zero/不等于零
SF 符号标志/Sign Flag NG/Negative/负 PL/Plus/正
TF 陷阱标志/Trap Flag
IF 中断标志/Interrupt Flag EI/Enable Interrupt/允许 DI/Disable Interrupt/禁止
DF 方向标志/Direction Flag DN/Down/减少 UP/增加
OF 溢出标志/Overflow Flag OV/Overflow/溢出 NV/Not Overflow/未溢出
debug下观察:
标志名 中文 标志为1时 标志为0时
OF[Overflow Flag] 溢出标志 ov[OVerflow] nv[Not oVerflow]
DF[Direction Flag] 方向 dn[DowN] up[UP]
IF[Interrupt Flag] 中断 ei[Enable] di[Disable]
SF[Sign Flag] 符号 ng[NeGative] pl[PLus]
ZF[Zero Flag] 零 zr[ZeRo] nz[Not Zero]
AF[AuxiliarycarryFlag] 辅进位 ac[Auxiliary] na[Not]
PF[Parity Flag] 奇偶 pe[Eve] po[Odd]
CF[Carry Flag] 进位 cy[CarrY] nc[Not Carry]
标志寄存器(Flags Register,FR)又称程序状态字(Program Status Word,PSW)。这是一个存放条件标志、控制标志寄存器,主要用于反映处理器的状态和运算结果的某些特征及控制指令的执行
各标志在标志寄存器中的位置:
条件标志:
CF(Carry Flag)进位标志:用于反映运算是否产生进位或借位。如果运算结果的最高位产生一个进位或借位,则CF置1,否则置0。运算结果的最高位包括字操作的第15位和字节操作的第7位。移位指令也会将操作数的最高位或最低位移入CF。
PF(Parity Flag)奇偶标志:用于反映运算结果低8位中“1”的个数。“1”的个数为偶数,则PF置1,否则置0。
AF(Auxiliary Carry Flag)辅助进位标志:在字节操作时低半字节向高半字节进位或借位,字操作时低字节向高字节进位或借位,AF置1,否则置0。
ZF(Zero Flag)零标志:用于判断结果是否为0。运算结果0,ZF置1,否则置0。
SF(Sign Flag)符号标志:用于反映运算结果的符号,运算结果为负,SF置1,否则置0。因为有符号数采用补码的形式表示,所以SF与运算结果的最高位相同。
OF(Overflow Flag)溢出标志:反映有符号数加减运算是否溢出。如果运算结果超过了8位或者16位有符号数的表示范围,则OF置1,否则置0。
控制标志:
TF(Trap Flag)陷阱标志:当TF被设置位1时,CPU进入单步模式,所谓单步模式就是CPU在每执行一步指令后都产生一个单步中断。主要用于程序的调试。8086/8088中没有专门用来置位和清零TF的命令,需要用其他办法。
IF(Interrupt Flag)中断标志:决定CPU是否响应外部可屏蔽中断请求。IF为1时,CPU允许响应外部的可屏蔽中断请求。
DF(Direction Flag)方向标志:决定串操作指令执行时有关指针寄存器调整方向。当DF为1时,串操作指令按递减方式改变有关存储器指针值,每次操作后使SI、DI递减。
各标志位名称、英文全称、标志值符号及含义一览:
标志位 标志位名称/英文 =1 =0
CF 进位标志/Carry Flag CY/Carry/进位 NC/No Carry/无进位
PF 奇偶标志/Parity Flag PE/Parity Even/偶 PO/Parity Odd/奇
AF 辅助进位标志/Auxiliary Carry Flag AC/Auxiliary Carry/进位 NA/No Auxiliary Carry/无进位
ZF 零标志/Zero Flag ZR/Zero/等于零 NZ/Not Zero/不等于零
SF 符号标志/Sign Flag NG/Negative/负 PL/Plus/正
TF 陷阱标志/Trap Flag
IF 中断标志/Interrupt Flag EI/Enable Interrupt/允许 DI/Disable Interrupt/禁止
DF 方向标志/Direction Flag DN/Down/减少 UP/增加
OF 溢出标志/Overflow Flag OV/Overflow/溢出 NV/Not Overflow/未溢出
debug下观察:
标志名 中文 标志为1时 标志为0时
OF[Overflow Flag] 溢出标志 ov[OVerflow] nv[Not oVerflow]
DF[Direction Flag] 方向 dn[DowN] up[UP]
IF[Interrupt Flag] 中断 ei[Enable] di[Disable]
SF[Sign Flag] 符号 ng[NeGative] pl[PLus]
ZF[Zero Flag] 零 zr[ZeRo] nz[Not Zero]
AF[AuxiliarycarryFlag] 辅进位 ac[Auxiliary] na[Not]
PF[Parity Flag] 奇偶 pe[Eve] po[Odd]
CF[Carry Flag] 进位 cy[CarrY] nc[Not Carry]