【汇编】标志寄存器中的标志位

各标志在标志寄存器中的位置

各标志在标志寄存器中的位置

一、运算结果标志位

1.进位标志位CF

进位标志CF主要用来反映运算是否产生进位或借位。

运算结果的最高位产生了一个进位或借位,那么,CF=1,否则CF=0。

2.零标志ZF

零标志ZF用来反映运算结果是否为0。

运算结果为0,那么,ZF=1,否则ZF=0。

3.符号标志SF

符号标志SF用来反映运算结果的符号位,它与运算结果的最高位相同。

运算结果为正数时,SF=0,否则SF=1。

4.溢出标志OF

溢出标志OF用于反映有符号数加减运算所得结果是否溢出。

如果运算结果超过当前运算位数所能表示的范围,则称为溢出,OF=1,否则,OF=0。

5.奇偶标志PF

奇偶标志PF用于反映运算结果中“1”的个数的奇偶性。

如果“1”的个数为偶数,则PF=1,否则PF=0。

6.辅助进位标志AF

在字操作时发生低字节向高字节进位或借位时 或者 在字节操作时发生低4位向高4位进位或借位时,AF=1,否则AF=0。

二、状态控制标志位

1.方向标志DF

方向标志DF用来决定在串操作指令执行时有关指针寄存器发生调整的方向。

2.追踪标志TF

当追踪标志TF被置为1时,CPU进入单步执行方式,即每执行一条指令,产生一个单步中断请求。这种方式主要用于程序的调试。

3.中断允许标志IF

中断允许标志IF是用来决定CPU是否响应CPU外部的可屏蔽中断发出的中断请求。

当IF=1时,CPU可以响应CPU外部的可屏蔽中断发出的中断请求。

当IF=0时,CPU不响应CPU外部的可屏蔽中断发出的中断请求。

三、32位标志寄存器增加的标志位

1.重启动标志RF

重启动标志RF用来控制是否接受调试故障。

RF=0时,表示“接受”调试故障,否则拒绝之。在成功执行完一条指令后,处理机把RF置为0,当接受到一个非调试故障时,处理机就把它置为1。

2.嵌套任务标志NT

嵌套任务标志NT用来控制中断返回指令IRET的执行。

当NT=0,用堆栈中保存的值恢复EFLAGS、CS和EIP,执行常规的中断返回操作;当NT=1,通过任务转换实现中断返回。

3.I/O特权标志IOPL

I/O特权标志用两位二进制位来表示,也称为I/O特权级字段。该字段指定了要求执行I/O指令的特权级。

如果当前的特权级别在数值上小于等于IOPL的值,那么,该I/O指令可执行,否则将发生一个保护异常。

4.虚拟8086方式标志VM

如果该标志的值为1,则表示处理机处于虚拟的8086方式下的工作状态,否则,处理机处于一般保护方式下的工作状态。

  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值