Что делают эти две инструкции? - PullRequest
1 голос
/ 11 июля 2019

Я должен перепроектировать некоторый код сборки, и я не уверен, что делает этот набор инструкций.

Я знаю, что al должен быть младшим байтом eax. Но я помещаю в него значение в edx, а edx - это четырехбайтовый регистр. Так кем же я становлюсь, когда я его двигаю?

mov     al, [edx]
mov     [ebp+var_19], al

1 Ответ

6 голосов
/ 11 июля 2019

Эти инструкции обе перемещаются на один байт. Первый загружает содержимое 32-битного адреса памяти в регистре edx в al. Вторая перемещает то же значение из al в адрес памяти, содержащийся в ebp плюс постоянное смещение. Вероятно, постоянное смещение - это 19-й слот локального стека или, может быть, 19-е слово параметра. Но это зависит от синтаксиса, созданного вашим дизассемблером.

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