状态标志寄存器FLAGS

FLAGS 称为标志寄存器或程序状态字(Program Status Word, PSW)。
标志寄存器是一个16 位的寄存器,8088 只使用了其中 9 位,分为两类:一类称为状态标志,反映指令执行结的特征,共有 6 位。另一类是控制标志,用于控制微处理器的操作,共有 3 位。

  • 6个状态标志位(CF、SF、AF、PF、OF、ZF)
  • 3个控制标志位(IF、TF、DF)

在这里插入图片描述

  • CF-进位标志:算术运算时有进位CF=1,无进位CF=0
    这里针对的是最高位向前有没有进位,注意与AF区分

  • PF-奇偶标志:运算结果中“1”的个数为偶数时PF=1,为奇数个则PF=0
    但是如果运算结果是16位数的话,PF标志只关注运算结果的低八位

  • AF-辅助进位标志:第三位向第四位有进位时AF=1
    举个例子
    0101 0000+ 1000 1111=1101 1111
    第三位分别是 0和1,相加并没有进位,所以AF=0

  • ZF-零标志:运算结果为0,则ZF=1,否则ZF=0

  • SF-符号标志:运算结果为负数时,SF=1
    对于符号数,最高位是符号位,因此SF相当于就是判别最高位是否为1,最高位是1表示是负数,SF=1

  • OF-溢出标志:运算结果是否超出规定范围,超出范围OF=1,未超出OF=0
    很容易把OF标志的判别方法和CF混淆,这里有一个简便的方法就是看最高位:

如果两个运算数最高位不一样,那么OF=0;
如果都是1,运算结果最高位是0,那么OF=1,否则OF=0
如果都是0,运算结果是最高位是1,那么OF=1,否则OF=0

控制标志:

  • IF-中断允许标志IF=1,中断允许
  • DF-方向标志:用于在串操作指令中控制地址指针变化的方向,DF=0地址指针按增量变化,DF=1地址指针按减量变化
  • TF-跟踪标志TF=1,为单步工作方式,即CPU每执行一条指令就产生一次中断,此时程序员可以查看CPU内部寄存器的内容、存储单元的内容和标志寄存器的内容等。这个中断主要用于程序调试。
  • 11
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值