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

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 › ргосЗ

Иллюстрированный самоучитель по Assembler › Приложение. Система команд процессоров Intel. › L Допустимо использование 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-битовое поле памяти.

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