Ассемблер: команда LEA

eXeL@B DVD

Материал из Справочник исследователя программ

Перейти к: навигация, поиск

Не могли бы вы объяснить для чего используется команда lea?

Команда lea используется для загрузки эффективного адреса. Например, если нам надо поместить в eax смещение массива Massiv для последующей работы с ним, то нужно написать так: lea eax, Massiv. Данная команда будет аналогична команде mov eax, offset Massiv. Также, если, например, необходимо получить адрес строки MsgText (предварительно объявленной так: "MsgText db "lalala",0", то можно написать: lea edx, MsgText. После этого в регистре edx окажется адрес, по которому хранится строка "lalala". Команду lea еще иногда используют для получения адреса какой-либо процедуры (например lea eax, ProcedureName). Иногда можно встретить, например, такое сочетание: lea ecx, dword ptr [edx+eax+01]. Для простоты скажу лишь, что эта команда приравняет ecx к edx+eax+1, т.е. после выполнения этой команды, ecx станет равным edx+eax+1. Аналогично, после выполнения команды "lea eax, dword ptr [ebx+ecx]", регистр eax станет равным ebx+ecx (eax = ebx + ecx). Ну вот вроде и все, что вам необходимо знать о команде lea для начала.

Отличие lea от mov состоит в том, что используется механизм блока адресации процессора, а не арифметико-логического блока.