logo

Главная Система команд x86 Базовая система команд CPU LLDT

Система команд x86

Программирование - Архитектура и система команд микропроцессоров x86
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

LLDT

Загрузка регистра локальной таблицы дескрипторов LDTR

Влияние команды на флаги и форматы команды:

OF

DF

IF

TF

SF

ZF

AF

PF

CF

 

 

 

 

 

 

 

 

 

 

Код

Команда

Описание

Проц.

Пример

0F 00 /2

LLDT r/m16

Загрузить селектор сегмента из r/m16 в регистр LDTR

Intel286

lldt [di]

Описание:

Команда LLDT загружает регистр локальной таблицы дескрипторов LDTR. Двухбайтный операнд команды LLDT может быть операндом в памяти или регистром и должен содержать селектор дескриптора в глобальной таблице дескрипторов GDT. Соответствующий дескриптор в GDT должен быть дескриптором локальной таблицы дескрипторов. Если так оно и есть, то LDTR загружается заданным селектором. Сегментные регистры DS, ES, SS, FS, GS и CS не изменяются. Поле LDT в сегменте состояния задачи (TSS) не изменяется.

Операнд-селектор может быть нулем, если это так, то LDTR помечается как недопустимый. Все дескрипторные ссылки (исключая ссылки через команды LAR, VERR, VERW или LSL) вызывают ошибку #GP.

Команда LLDT используется в системном программном обеспечении, она не используется в прикладных программах.

Операция:

Проверка загружаемого селектора и соответствующего дескриптора таблице дескрипторов;

  Индекс селектора должен попадать в пределы таблицы дескрипторов, иначе #GP(Селектор);

  Селектор должен указывать на дескриптор типа LDT, иначе #GP(Селектор);

  Сегмент должен быть помечен, как присутствующий, иначе #NP(Селектор);

LDTR.SegmentSelector = SRC;

LDTR.SegmentDescriptor = GDT.SegmentDescriptor; (* Загрузка скрытой части регистра *)

Особые ситуации защищенного режима:

#GP(0), если текущий уровень привилегий не равен 0, также если используется некорректный эффективный адрес операнда в памяти в сегментах CS, DS, ES, FS, GS или нулевой селектор.
#SS(0) при использовании некорректного эффективного адреса в сегменте SS.
#GP(Селектор), если операнд-селектор не указывает на глобальную таблицу дескрипторов, или запись в GDT не является корректным дескриптором локальной таблицы дескрипторов.
#NP(Селектор), если дескриптор LDT не присутствует.
#PF(Код ошибки) при страничной ошибке.

Особые ситуации режима реальной адресации:

#UD, команда LLDT не распознается в реальном режиме.

Особые ситуации режима V86:

#UD, команда LLDT не распознается в реальном режиме.

Замечание:

Атрибут размера операнда не влияет на команду LLDT.


Входит в группу команд: Базовая система команд CPU




Все права защищены © Алексей Ровдо, 1994-2023. Перепечатка возможна только по согласованию с владельцем авторских прав. admin@club155.ru

Top.Mail.Ru       Сервер радиолюбителей России - схемы, документация,

 соревнования, дипломы, программы, форумы и многое другое!   схемы новости электроники