在x86汇编器中对64位数字进行抽象?
答
这个想法是使用SBB
(子借用)指令。举例来说,如果我有两个数字:
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
@starblue,我不会标记这是64位的,因为技术上它是32位机器上的32位算术运算。这个标签不是有点误导? – 2010-06-16 19:24:26