
- •Системные регистры
- •Регистр gdtr
- •Регистр idtr
- •Регистр ldtr
- •Регистр ldtr
- •Регистр tr
- •Регистр управления cr0
- •Регистр управления cr2
- •Регистр управления cr3
- •Регистр управления cr4
- •Регистры отладки
- •Модельно-специфические регистры (msr)
- •Типы команд процессора p6.
- •Форматы команд процессора p6.
- •Понятия адреса и адресного пространства
- •Способы адресации операндов.
- •Inc esi –инкремент esi
- •Адресация операндов в памяти
- •Формирование адреса в защищенном режиме с 32 битной адресацией.
- •Лекция2 Плоская модель памяти.
- •Сегментная модель памяти.
- •Достоинства сегментации
- •Сегментация памяти в процессорах 8086
- •Эффект «закругления» или «заворачивания» адреса.
- •Недостатки сегментации в процессоре 8086.
- •Сегментация памяти в защищенном режиме.
- •Байт прав доступа
- •Дескрипторные таблицы.
- •Регистр idtr
- •Регистр ldtr
- •Селекторы сегментов.
- •Формирование линейного адреса.
- •Пример вычисления линейного адреса в защищенном режиме.
- •Кэширование дескрипторов в процессоре.
- •Дескрипторы псевдонимы
- •Страничная организация памяти.
- •Страничная память: виртуальная и физическая.
- •Одноэтапное преобразование линейного адреса в физический.
Дескрипторные таблицы.
Существуют дескрипторные таблицы трех типов.
GDT – глобальная дескрипторная таблица. Содержит дескрипторы общесистемных объектов. Ее местоположение в физической памяти определяет регистр GDTR.
IDT – дескрипторная таблица прерываний. Предназначена для вызова процедур обработки прерываний и исключений. Местоположения IDT в физической памяти определяет регистр IDTR.
LDT – локальная дескрипторная таблица. Содержит дескрипторы сегментов, доступные только для одной конкретной задачи. Для локализации LDT используется 16разрядный регистр LDTR, который косвенно через GDT определяет LDT. В мультизадачной среде таблиц LDT может быть множество. Активной является только одна таблица, селектор которой содержится в LDTR.
Для работы с регистрами дескрипторных таблиц используются команды:
LGDT mem48
LIDT mem48
LLDT reg16/ mem16
SGDT mem48
SIDT mem48
SLDT reg16/ mem16
-
ОП
63 0
дескриптор N
GDT
дескриптор 1
дескриптор 0
|
47 16 |
15 0 |
GDTR |
базовый адрес |
предел |
Регистр idtr
IDTR (Interrupt Descriptor Table Register).
Определяет местоположение в ОП дескрипторной таблицы прерываний.
Таблица IDT содержит дескрипторы шлюзов, необходимые для выполнения процедур обработки прерываний(исключений).
-
ОП
63 0
дескриптор шлюза M
IDT
дескриптор шлюза 1
дескриптор шлюза 0
|
47 16 |
15 0 |
IDTR |
базовый адрес |
предел |
Регистр ldtr
Определяет косвенно через GDT местоположение в оперативной памяти LDT.
Локальная дескрипторная таблица содержит дескрипторы сегментов(кода, стека, данных), относящиеся к текущей задаче.
Каждая задача имеет свою LDT.
-
63 0
GDT
д
ескриптор LDT
47 0 |
GDTR |
|
15 0 |
63 теневой регистр 0 | ||
LDTR |
селектор |
баз адрес |
предел |
атрибуты |
|
63 0 |
|
LDT |