奇怪的汇编语言添加
Strange Assembly Language Addition
我最近在学习汇编语言,我遇到了一个我不明白的添加语句。
ebx=00000003;
esi=0FFFFFFFFh;
add ebx,esi
The Result was: ebx=00000002
这怎么可能?
有人可以向我解释加法是如何发生的吗?
这是一个被掩饰为加法的减法。
指令 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
)的溢出实现的。
我最近在学习汇编语言,我遇到了一个我不明白的添加语句。
ebx=00000003;
esi=0FFFFFFFFh;
add ebx,esi
The Result was: ebx=00000002
这怎么可能? 有人可以向我解释加法是如何发生的吗?
这是一个被掩饰为加法的减法。
指令 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
)的溢出实现的。