【发布时间】:2017-09-01 15:28:24
【问题描述】:
在这个article 中,它说:
1111 + 0001 = 0000(进位标志开启)
据我所知,当结果不适合特定数量的位(本例中为 4 位)时会发生进位,因此上述等式确实导致了进位(因为结果有效10000 , 不适合 4 位)。
但请看同一篇文章中的以下内容:
0000 - 0001 = 1111 (carry flag is turned on)
我不明白为什么在这种情况下设置进位标志,我的意思是结果是1111,所以它适合4位!
【问题讨论】:
-
1111+0001=0000翻译成十进制就是:(-1) + 1 = 0,第一位是进位标志,后三位从0到7(0000到0111)计数或从 -8 到 -1(1000 到 1111)。
-
x86 的进位标志表示减法时借位。
-
相关(不重复,加上这是我的回答):stackoverflow.com/questions/45261231/…,请参阅底部进位标志的讨论
-
这个问题已经被问过很多次了……
标签: assembly x86 twos-complement