L
Пример 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 proc1; Полный адрес процедуры prod dd proc2; Полный адрес процедуры ргос2 dd ргос3; Полный адрес процедуры ргос3 ;В программном сегменте: mov SI, 8; Смещение к адресу ргос3 les DI,dptr[SI]; ES:DI › ргосЗ
Допустимо использование 32-разрядного регистра-приемника и 32-битового смещения в памяти, а также дополнительных режимов адресации 32-разрядных процессоров. В защищенном режиме вместо сегментного адреса сегмента выступает его селектор.
LFS Загрузка указателя с использованием регистра FS. LGS Загрузка указателя с использованием регистра FS. LSS Загрузка указателя с использованием регистра FS.
Команды считывают из памяти полный указатель, состоящий из селектора и 16-битового или 32-битового смещения, и загружают младшую половину указателя (т.е. относительный адрес) в указанный в команде регистр общего назначения, а старшую половину указателя (т.е. селектор) в сегментный регистр, указанный в мнемонике команды.
В качестве первого операнда всех перечисленных команд указывается 16- или 32-разрядный регистр общего назначения; в качестве второго – ячейка памяти с 32- или 48-битовым содержимым. Команда не воздействует на флаги процессора.
Примеры см. в описании команд Ids и les.
386Р+ LGDT Загрузка регистра таблицы глобальных дескрипторов
Команда Igdt загружает регистр таблицы глобальных дескрипторов (GDTR) из 48-битового псевдодескриптора, содержащего 32-битовый базовый адрес и 16-битовую границу таблицы глобальных дескрипторов, находящейся в памяти. В качестве операнда команды Igdt выступает относительный адрес псевдодескриптора.
386Р+ LIDT Загрузка регистра таблицы дескрипторов прерываний
Команда lidt загружает регистр таблицы дескрипторов прерываний (IDTR) из 48-битового псевдодескриптора, содержащего 32-битовый базовый адрес и 16-битовую границу таблицы дескрипторов прерываний, находящейся в памяти. В качестве операнда команды lidt выступает относительный адрес псевдодескриптора.
386Р+ LLDT Загрузка регистра таблицы локальных дескрипторов
Команда lldt загружает регистр таблицы локальных дескрипторов (LDTR) селектором, определяющим таблицу локальных дескрипторов (LDT). Селектор LDT должен входить в таблицу глобальных дескрипторов. В качестве операнда команды lldt, содержащего селектор LDT, можно использовать 16- или 32-разрядный регистр общего назначения или 16- или 32-битовое поле памяти.