我最近一直在学习汇编语言,我遇到了一个我不理解的补充声明。
ebx=00000003;
esi=0FFFFFFFFh;
add ebx,esi
The Result was: ebx=00000002
这怎么可能? 有人可以解释我是如何进行添加的吗?
答案 0 :(得分:4)
这是一个作为补充掩盖的减法
指令add ebx,esi
在ESI中将值-1
添加到EBX中3
的值,结果为2
。
这是可能的,因为two complement binary addition。
ebx=000000003h; 3
esi=0FFFFFFFFh; -1
--------------; +
ebx=000000002h; 2
通过从0FFFFFFFFh(-1
)溢出到00000000h(0
)来实现减法。