为什么INC,DEC指令不影响CF标志位呢?

引言

我们知道执行算数运算指令的时候,当结果的最高位与进位或者借位时会把状态寄存器FLAGS的CF位置为1,否则置为0,但是为什么INC和DEC这样的指令不影响CF标记位呢?

怀着对这个问题的疑惑,在CSDN查询未果后找到了几个高赞回答,遂记录以帮助后面有同样疑惑的朋友。

答:

  1. 因为指令系统设计人员考虑该指令主要用于对指针(即地址)进行增加,不存在进位问题,所以没有设计让INC影响进位标志CF。
  2. INC,DEC指令不影响CF标志位,这个是Intel规定的!其原因是硬件设计造成的,总之,对软件人员来制说不重要!

INC,DEC指令不影响CF标志bai位,这表明执行INC/DEC指令之后,CF不能反映进位情况

INC 0000000011111111

0000000011111111+1当然要进位,但不设置CF为1。
我们的问题就在于,将进位与CF等同
CF被称为进位标志位,在多数情况下,它确实反映进位情况,但不是绝对的,INC/DEC就是其中两例
INC/DEC指令不影响CF标志位,这句话就是明明白白地告诉你,此时,CF与进位无关

参考:

posted @ 2022-07-02 13:17  李兆龙的博客  阅读(663)  评论(0编辑  收藏  举报