在x86汇编器中对64位数字进行抽象?

问题描述:

如何使用386汇编器减去64位数字?在x86汇编器中对64位数字进行抽象?

+1

@starblue,我不会标记这是64位的,因为技术上它是32位机器上的32位算术运算。这个标签不是有点误导? – 2010-06-16 19:24:26

这个想法是使用SBB(子借用)指令。举例来说,如果我有两个数字:

  1. edx:eax
  2. 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