在x86汇编程序中减去64位数字?

时间:2010-06-16 19:09:07

标签: assembly x86

如何使用386汇编器减去64位数?

1 个答案:

答案 0 :(得分:12)

这个想法是使用SBB(sub with borrow)指令。例如,如果我有两个数字:

  1. edx:eax
  2. ecx:ebx
  3. 然后这会在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