Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ассемблер. Чем Lea отличается от Mov?

Иван Иванов Мудрец (17811), закрыт 5 лет назад
Только начал изучать ассемблер, прочитал, в чем отличие lea от mov - и ничерта не понял. Пишут про какие-то вычисления адресов, эффективные адреса, и прочую ересь. Может кто-нибудь понятно объяснить в чем их отличие?
Лучший ответ
serd Просветленный (20240) 5 лет назад
LEA означает "Эффективный адрес загрузки"
MOV означает значение нагрузки
Короче говоря, LEA загружает указатель на объект, который вы адресуете, тогда как MOV загружает фактическое значение по этому адресу.

Цель LEA - дать возможность выполнить нетривиальный расчет адреса и сохранить результат [для последующего использования]

LEA ax, [BP+SI+5] ; Compute address of value

MOV ax, [BP+SI+5] ; Load value at that address
В тех случаях, когда задействованы только константы, MOV (посредством вычислений констант ассемблера) иногда может пересекаться с простейшими случаями использования LEA. Где это полезно, если у вас многоуровневый расчет с несколькими базовыми адресами и т. д.

Инструкция MOV reg, addr означает чтение переменной, хранящейся в адресе addr, в регистр reg. Инструкция LEA reg, addr означает считывание адреса (а не переменной, хранящейся по адресу) в регистровую рег.
Я КрасавчегМыслитель (7102) 5 лет назад
Инструкция MOV reg, addr означает чтение переменной, хранящейся в адресе addr, в регистр reg. - Сейчас попробовал повспоминать и попрогить на масм и оказалось что addr можно вызывать только в invoke. mov reg, addr l1 где l1 - это переменная, выдает ошибку.
Думаю addr тут означает просто адрес, а не оператор ADDR.
Остальные ответы
Spoilerok Высший разум (274002) 5 лет назад
Когда задаёте вопрос, задавать его надо конкретно, с примером. А так ответ простой. Первая команда загружает адрес, другая значение ячейки памяти.
Дед Мазай Гений (58129) 5 лет назад
Как я понимаю, LEA можно использовать для различных вычислений, а не только для загрузки адреса. Но это специальные вычисления, они не всегда годятся.
Похожие вопросы