飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 5141|回复: 0

[分享] 80x86汇编语言基础 之标志位(PSW,EFLAGS,RFLAGS)

[复制链接]
  • TA的每日心情
    开心
    2022-4-18 15:36
  • 签到天数: 207 天

    [LV.7]常住居民III

    发表于 2008-6-11 15:12:21 | 显示全部楼层 |阅读模式
    80x86汇编语言基础 之标志位(PSW,EFLAGS,RFLAGS)8086/8088 的 PSW
    PSW(Progarm Status Word)程序状态字寄存器由条件码标志控制标志构成
    ---------------------------------------------------------------------------------
      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)。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表