【发布时间】:2010-05-25 03:21:21
【问题描述】:
假设 AX =FFFE 和 BX=1234
现在如果我们写cmp ax,bx
(将从 ax 中减去 bx 并更新相应的标志)
现在 ax 和 bx 中数字的二进制表示为
AX = 1111 1111 1111 1110
BX= 0001 0010 0011 0100
因为 bx 将从 ax 中减去,所以我们必须否定 bx(因为 Result= ax+(-bx))
所以取反的 bx(bx 的 2 补码)由下式给出。
BX= 1110 1101 1100 1100
现在我们将 ax 和 bx 都相加(因为减法是通过计算机中的加法实现的)
AX= 1111 1111 1111 1110
BX= 1110 1101 1100 1100
------------------------------------
1 1110 1101 1100 1010
现在你可以看到结果是 17 位,现在第 17 位应该进入进位标志,但是当我检查它时,进位标志是 0,即 CF=0 为什么?
【问题讨论】:
标签: assembly assemblyinfo