Защищенный режим процессоров Intel


Недокументированная команда LOADALL - часть 2


Адрес Регистры процессора
800h-805h Не используется
806h-807h Слово состояния процессора MSW (Machine Status Word)
808h-815h Не используется
816h-817h Регистр задачи TR (Task Register)
818h-819h Регистр флагов
81Ah-81Bh Регистр IP (Instruction Pointer)
81Ch-81Dh Селектор LDT (Local Descriptor Table)
81Eh-81Fh Регистр DS (Data Segment Selector)
820h-821h Регистр SS (Stack Segment Selector)
822h-823h Регистр CS (Code Segment Selector)
824h-825h Регистр ES (Extra Segment Selector)
826h-827h Регистр DI (Destination Index)
818h-829h Регистр SI (Source Index)
82Ah-82Bh Регистр BP (Base Pointer)
82Ch-82Dh Регистр SP (Stack Pointer)
82Eh-82Fh Регистр BX (Data Register BX)
830h-831h Регистр DX (Data Register DX)
832h-833h Регистр CX (Data Register CX)
834h-835h Регистр AX (Accumulator)
836h-83Bh Кэш дескриптора ES
83Ch-841h Кэш дескриптора CS
842h-847h Кэш дескриптора SS
848h-84Dh Кеш дескриптора DS
84Eh-853h Регистр GDTR (Global Descriptor Table Register)
854h-859h Кэш дескриптора LDT
85Ah-85Fh Регистр IDTR (Interrupt Descriptor Table Register)
860h-865h Кэш дескриптора TSS (Task State Segment)

Для ускорения доступа к содержимому дескрипторных таблиц в процессоре имеются так называемые теневые регистры или регистры кэша дескрипторов. Когда процессор загружает селектор в сегментный регистр, автоматически выполняется загрузка соответствующего регистра кэша дескриптора. Не существует какого-либо иного способа загрузить кэш дескриптора явно из программы с помощью обычных команд. Однако вы можете воспользоваться для этого командой LOADALL, подготовив в описанном выше буфере необходимые значения.

Формат кэша дескриптора приведён в следующей таблице:

Таблица 17. Формат кэша дескриптора.

Смещение поля Назначение поля
0-2 24-битовый базовый адрес сегмента
3 Байт доступа, его формат полностью аналогичен формату байта доступа дескриптора, за исключением бита присутствия. На месте этого бита находится бит VALID. Если этот бит сброшен в 0, при попытке использовать дескриптор для адресации памяти произойдёт исключение 13 с кодом ошибки 0.
4-5 16-битовый предел сегмента



- Начало -  - Назад -  - Вперед -