如何使用386汇编器减去64位数?
答案 0 :(得分:12)
这个想法是使用SBB
(sub with borrow)指令。例如,如果我有两个数字:
edx:eax
ecx:ebx
然后这会在edx:eax
:
sub eax, ebx
sbb edx, ecx
这个想法是你可以单独减去每个部分,但你需要从MSB借用到LSB。 SBB
就是这样做的:
SBB dest, src
表示:
dest <-- dest - src - EFLAGS.CF
这很方便,因为:
SUB dest, src
表示:
dest <-- dest - src
EFLAGS.CF <-- borrow from subtraction