假设AX = 8FFE和BX = 0FFF
现在,如果我们写现在符号标志和溢出标志根据预期
Cmp ax,bx
在这一点上会发生什么事是,源(BX)将不工作从目的地(ax)中减去并且适当的标志将被更新。由于计算机以2的补码形式表示每个数字,因此8FFE是某个数字的2的补码。0FFF是某个数字的2的补码。
正如在2的补码中减法是通过加法实现的,所以我们通过将它们转换成二进制来添加这两个数字。
8FFE----------> 1000 1111 1111 1110
0FFF----------> 0000 1111 1111 1111
--------------------------------
1001 1111 1111 1101
现在这是十六进制9FFD的结果。
正如您所看到的,没有发生溢出并且符号位是结果1。
问题:这个想象力的符号标志应当设置和溢出标志
应该保持0,我在调试器中检查了这一点,但我发现它
即 对面,符号标志保持为0和溢出标志是1. 现在请告诉我为什么
发生?
你忘了补充BX。 – starblue 2010-05-24 15:04:46
谢谢先生,我明白你的观点,我现在没有困惑 – 2010-05-24 18:50:10