Мониторинг обменных курсов валют
18c0693f

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 указывается регистр общего назначения; в качестве второго - ячейка памяти с двухсловным содержимым. Указатель, содержащийся в этой ячейке, может быть адресом как процедуры, так и поля данных. Команда не воздействует на флаги процессора.

Пример 1

;В полях данных:

addr dd myproc ;Двухсловный адрес процедуры

;myproc

;В программном сегменте:

les SI,addr ;ES:SI ® myproc

Пример 2

;В полях данных:

mem dw 25 ;Ячейка памяти с

;произвольным содержимым

addr dd myproc ;Двухсловный адрес этой ячейки

;В программном сегменте:

mov BX,offset addr ;ВХ=адрес ячейки addr


les DX, [BX] ; DХ=смещение ячейки mem,

;ЕS=сегментный адрес ячейки mem

Пример 3

;В полях данных:

dptr dd procl ;Полный адрес процедуры prod

dd proc2 ;Полный адрес процедуры ргос2

dd ргосЗ ;Полный адрес процедуры ргосЗ

;В программном сегменте:

mov SI, 8 ;Смещение к адресу ргосЗ

les DI,dptr[SI] ;ES:DI -> ргосЗ

Допустимо использование 32-разрядного регистра-приемника и 32-битового смещения в памяти, а также дополнительных режимов адресации 32-разрядных процессоров. В защищенном режиме вместо сегментного адреса сегмента выступает его селектор.


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

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

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

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

В качестве первого операнда всех перечисленных команд указывается 16- или 32-разрядный регистр общего назначения; в качестве второго - ячейка памяти с 32- или 48-битовым содержимым. Команда не воздействует на флаги процессора.

Примеры см. в описании команд Ids и les.






Самый выгодный курс обмена валюты