80x86汇编语言基础标志位篇

80x86汇编语言标志位(PSW,EFLAGS,RFLAGS)

8086/8088 的 PSW

PSW(Progarm Status Word)程序状态字寄存器计算机系统的核心部件——运算器的一部分。
PSW用来存放两类信息:一类是体现当前指令执行结果的各种状态信息,如有无进位(CY位),有无溢出(OV位),结果正负(SF位),结果是否为零(ZF位),奇偶标志位(P位)等;另一类是存放控制信息,如允许中断(IF位),跟踪标志(TF位)等。有些机器中将PSW称为标志寄存器FR(Flag Register)。
---------------------------------------------------------------------------------
  15   14   13   12   11   10    9    8    7    6    5    4    3    2    1    0
|    |    |    |    | OF | DF | IF | TF | SF | ZF |    | AF |    | PF |    | CF |

条件码标志
OF:(Overflow Flag)溢出标志,在运算过程中,如操作数超出了机器能表示的范围则称为溢出。此时OF标志位为1(OV),否则置0(NV)。
SF:(Sign Flag)符号标志,记录运算结果的符号,结果为负时置1(NG),否则置0(PL)。
ZF:(Zero Flag)零标志,运算结果为0时置1(ZR),否则置0(NZ)。
CF:(Carry Flag)进位标志,运算时,从最高有效位产生了进位值时0时置1(CY),否则置0(NC)。
AF:(Auxiliary carry Flag)辅助进位标志,记录运算时最低的4位(半个字节)产生的进位值。有进位值时置1否(AC),则置0(NA)。
PF:(Parity Flag)奇偶标志,用来为机器中传送信息时可能产生的代码出错情况提供检验条件,当结果操作数中1的个数为偶数时置1(PE),否则置0(PO)。

控制标志
DF:(Direction Flag)方向标志,在串处理指令中控制处理信息的方向用,当DF置1(DN)每次操作后,使变址寄存器SI和DI减量,这样就使串处理从高地址向低地址方向处理。当DF置0(UP)时,则反之。
IF:(Interrupt Flag)中断标志,当IF为1(EI)时,允许中断,否则IF为0(DI)关闭中断。
TF:(Trap Flag)陷井标志,用于单步方式操作,当TF为1时,每条指令执行完后产生陷井,由系统控制计算机;当IF为0时,CPU正常工作不产生陷井。

RFLAGS(64位)/EFLAGS(32位)

RFLAGS(64位)将EFLAGS(32位)扩展到64位,新扩展的高32位全部保留未用。
RFLAGS(32位)由3类(S: Status flag,C: Control flag,X: System flag)标志位组成:

   63-32        31-22      21    20   19    18   17   16
| RFlags保留 | EFlags保留 | ID | VIP | VIF | AC | VM | RF |

  15    14  13-12   11   10    9    8    7    6    5    4    3    2    1    0
|     | NT | IOPL | OF | DF | IF | TF | SF | ZF |    | AF |    | PF |    | CF |

System flag:
ID:Identification(Pentium+)。
VIP:Virtual interrupt pending(Pentium+)。
VIF:Virtual interrupt flag (Pentium+)。
AC:Alignment check (486SX+ only)。
VM:Virtual 8086 mode flag (386+ only) 
RF:Resume flag (386+ only)。
IOPL:I/O privilege level (286+ only)。
NT:Nested task flag (286+ only)。
IF:(Interrupt Flag)中断标志,当IF为1(EI)时,允许中断,否则IF为0(DI)关闭中断。
TF:(Trap Flag)陷井标志,用于单步方式操作,当TF为1时,每条指令执行完后产生陷井,由系统控制计算机;当IF为0时,CPU正常工作不产生陷井。

Control flag:
DF:(Direction Flag)方向标志,在串处理指令中控制处理信息的方向用,当DF置1(DN)每次操作后,使变址寄存器SI和DI减量,这样就使串处理从高地址向低地址方向处理。当DF置0(UP)时,则反之。

Status flag:
条件码标志有:
OF:(Overflow Flag)溢出标志,在运算过程中,如操作数超出了机器能表示的范围则称为溢出。此时OF标志位为1(OV),否则置0(NV)。
SF:(Sign Flag)符号标志,记录运算结果的符号,结果为负时置1(NG),否则置0(PL)。
ZF:(Zero Flag)零标志,运算结果为0时置1(ZR),否则置0(NZ)。
CF:(Carry Flag)进位标志,运算时,从最高有效位产生了进位值时0时置1(CY),否则置0(NC)。
AF:(Auxiliary carry Flag)辅助进位标志,记录运算时最低的4位(半个字节)产生的进位值。有进位值时置1否(AC),则置0(NA)。
PF:(Parity Flag)奇偶标志,用来为机器中传送信息时可能产生的代码出错情况提供检验条件,当结果操作数中1的个数为偶数时置1(PE),否则置0(PO)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值