Иллюстрированный самоучитель по Assembler

L

LEA Загрузка исполнительного адреса

Команда lea загружает в регистр, указанный в команде в качестве первого операнда, относительный адрес второго операнда (не значение операнда!). В качестве первого операнда следует указывать регистр общего назначения (не сегментный), в качестве второго – ячейку памяти. Команда:

lea reg,mem

Эквивалентна команде:

mov reg,offset mem

Но у первой команды больше возможностей описания адреса интересующей нас ячейки. Команда не воздействует на флаги процессора.

Пример 1:

; В полях данных:
message db; 'Идут измерения'
;В программном сегменте:
lea SI,message; DS:SI › message

Пример 2:

; В полях данных:
nmb db '0123456789'
;В программном сегменте:
mov SI,7; Смещение символа '7'
lea DX,nmb[SI]; ВХ=адрес символа '7'

Пример 3:

; В полях данных:
nmb db '0123456789'
;В программном сегменте:
mov BX, off set msg
mov SI, 9; Смещение символа '9'
lea SI, [BX] [SI]; 31=адрес символа '9'

Иллюстрированный самоучитель по Assembler › Приложение. Система команд процессоров Intel. › L Допустимо использование 32-битовых операндов и дополнительных режимов адресации 32-разрядных процессоров.

386+ LEAVE Выход из процедуры высокого уровня

Команда leave выполняет действия, противоположные действиям последней команды enter. Она логически уничтожает созданный командой enter стековый кадр со всеми содержащимися в нем локальными переменными и подготавливает стек к выполнению команды irct, завершающей переход в вызывающую процедуру. Команда leave не имеет параметров. Более подробное описание и пример см. в описании команды enter.

LES Загрузка указателя с использованием регистра ES

Команда les считывает из памяти по указанному адресу двойное слово (32 бит), содержащее указатель (полный адрес некоторой ячейки), и загружает младшую половину указателя (т.е. относительный адрес) в указанный в команде регистр, а старшую половину указателя (т.е. сегментный адрес) в регистр ES. Таким образом, команда:

les reg,mem

Эквивалентна следующей группе команд:

mov reg,word ptr mem
mov ES,word ptr mem+2

В качестве первого операнда команды les указывается регистр общего назначения; в качестве второго – ячейка памяти с двухсловным содержимым. Указатель, содержащийся в этой ячейке, может быть адресом как процедуры, так и поля данных. Команда не воздействует на флаги процессора.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.