Вычитать 64-битные числа в ассемблере x86? - PullRequest
3 голосов
/ 16 июня 2010

Как вычесть 64-битные числа с помощью ассемблера 386?

1 Ответ

12 голосов
/ 16 июня 2010

Идея состоит в том, чтобы использовать инструкцию SBB (sub с заимствованием). Например, если у меня есть два числа:

  1. edx:eax
  2. ecx:ebx

тогда разница будет edx:eax:

sub eax, ebx
sbb edx, ecx

Идея состоит в том, что вы можете вычитать каждую часть отдельно, но вам нужно одолжить у MSB младший. 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...