Инструкция x86 Леа - PullRequest
       42

Инструкция x86 Леа

2 голосов
/ 06 февраля 2012

Я пытаюсь получить хорошее представление о инструкции LEA в x86:

leal (%edx, %edx, 4), %eax
leal (%edx, %edx, 2), %eax

Учитывая эти две строки, я знаю, что:

eax = edx + edx*4

а затем

eax = edx + edx*2

Два вопроса.Во-первых, если эти инструкции появляются последовательно, как в этом примере, регистр eax перезаписывается после выполнения второй строки?А что именно будет загружено в реестр?Другой адрес?Или это арифметика значений, на которые указывают эти регистры?

1 Ответ

2 голосов
/ 06 февраля 2012

если эти инструкции появляются последовательно, как в этом примере, регистр eax перезаписывается при выполнении второй строки?

Да (перезаписывается после обеих инструкций)

А что именно будет загружено в реестр?Другой адрес?

Адрес памяти, описанный EDX + смещение, сохраненное как значение в EDX, умноженное на 2

...