Определите пункт назначения (имя или адрес регистра) и значение - PullRequest
0 голосов
/ 27 января 2019
mov eax 0x8000 

mov ebx 0x10000

lea esp, [ebx+eax*2]

Здесь я знаю, что пунктом назначения является esp.Также я знаю, что LEA (эффективный адрес загрузки) ведет себя как движение в этой ситуации.Но я не уверен насчет значения, хранящегося в этом регистре.Я вижу это так:

0x8000 * 2 = 0x80000

0x20000 + 0x10000 = 0x200000

, поэтому значение будет:

[0x200000]

Я прав?

1 Ответ

0 голосов
/ 27 января 2019

Проверьте свою арифметику, но, как правило, вы правы.Вы правильно понимаете инструкцию LEA x86.

Инструкция LEA x86 не разыменовывает адрес, который она вычисляет.То есть LEA не идет по адресу;скорее LEA просто вычисляет адрес для последующего использования другой инструкцией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...