-----------------------------------------------------------------|Код Команда Число Описание ||операции тактовых || циклов ||0F 01 /2 LGDT m16&32 11 Загрузка m в GDTR ||0F 01 /3 LIDT m16&32 11 Загрузка m в IDTR |----------------------------------------------------------------- Работа командыIF команда = LIDTTHEN If OperandSize = 16 THEN IDTR.граница:база <- m16:24 (* Загружается 24 бита базы *) ELSE IDTR.граница:базв <- m16:32 FI;ELSE (* Команда = LGDT *) If OperandSize = 16 THEN GDTR.граница:база <- m16:24 (* Загружается 24 бита базы *) ELSE GDTR.граница:базв <- m16:32 FI;FI; ОписаниеКоманды LGDT и LIDT загружают значения линейного базового адреса и границыиз шести-байтового операнда данных в памяти в регистры GDTR и IDTR,соответственно. Если с командой LGDT или LIDT используется 16-разрядныйоперанд, то регистр загружается 16-разрядной границей и 24-разряднойбазой, а старшие восемь битов шести-байтового операнда данных неиспользуются. Если используется 32-разрядный операнд, то загружаются16-разрядная граница и 32-разрядная база; старшие восемь битовшести-байтового операнда используются как старшие адресные биты базы.Команды SGDT и SIDT всегда выполеняют запись во все 48 битовшести-байтного операнда данных. В случае процессора 80286 после выполнениякоманд SGDT и SIDT старшие восемь битов неопределены. В случае процессоров386 DX или i486 старшие восемь битов помещаются в восьми старших адресныхбитах, как для 16-разрядных, так и для 32-разрядных операндов. Есликоманда LGDT или LIDT используется с 16-разрядным операндом для загрузкирегистра, записанного командами SGDT или SIDT, то старшие восемь битовхранятся в виде нулей.Команды LGDT и LIDT используются в системном программном обеспечении;прикладным программам они не нужны. Это единственные команды, напрямуюзагружающие линейный адрес (а не адрес относительно сегмента) в защищенномрежиме. Изменяемые флаги Отсутствуют Исключения защищенного режима#GP(0), если текущий уровень привилегированности не равен 0; #UD, еслиисходный операнд является регистром; #GP(0) в случае недопустимогоисполнительного адреса операнда памяти в сегментах CS, DS, ES, FS или GS;#SS(0) в случае недопустимого адреса в сегменте SS; #PF(код сбоя) в случаестраничного сбоя; Исключения режима реальных адресов Прерывание 13, есликакая-либо часть операнда лежит вне пространства исполнительных адресов от0 до 0FFFFH. Прерывание 6, если исходный операнд является регистром;Примечание: Эти команды допустимы в режиме реальных адресов, чтобыпозволить инициализацию при включении питания для защищенного режима.Исключения виртуального режима 8086 Те же исключения, что и для режимареальных адресов: #PF (код сбоя) для страничных сбоев.