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 - это переменная, выдает ошибку.