【问题标题】:Substracting 64bit numbers in x86 assembler?在 x86 汇编程序中减去 64 位数字?
【发布时间】:2010-06-16 19:09:07
【问题描述】:

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

【问题讨论】:

  • @starblue,我不会将其标记为 64 位,因为从技术上讲,它是 32 位机器上的 32 位算法。这个标签是不是有点误导人?

标签: assembly x86


【解决方案1】:

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

  1. edx:eax
  2. ecx:ebx

那么这将把差异放在edx:eax

sub eax, ebx
sbb edx, ecx

这个想法是您可以分别减去每个部分,但您需要从 MSB 借用到 LSB。 SBB 就是这样做的:

SBB <em>dest</em>, <em>src</em> 表示:

dest <-- dest - src - EFLAGS.CF

这很方便,因为:

SUB <em>dest</em>, <em>src</em> 表示:

dest <-- dest - src
EFLAGS.CF <-- borrow from subtraction

【讨论】:

    猜你喜欢
    • 2017-04-03
    • 1970-01-01
    • 2017-07-27
    • 1970-01-01
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 2017-10-20
    • 1970-01-01
    相关资源
    最近更新 更多