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


Детальное описание схемы преобразования адресов - часть 7


В отличие от регистра GDTR, регистр LDTR имеет только 16 разрядов. Он содержит не адрес и размер таблицы LDT, а селектор дескриптора, описывающего таблицу LDT. Это системный дескриптор, который должен находиться в таблице GDT и иметь в поле TYPE значение 2.

Дескриптор сегмента LDT содержит базовый адрес и предел таблицы LDT.

Мы уже говорили, что простейшие системы защищённого режима могут не использовать таблицу LDT вовсе. Все приведённые в этой книге примеры программ пользуются только GDT. Практическая польза от применения таблиц LDT появляется только в мультизадачных системах. В этом случае назначение каждой задаче собственной LDT позволяет полностью изолировать адресные пространства отдельных задач. Но об этом мы будем говорить в разделе книги, посвящённом мультизадачности.

Подведём итоги.

  • Вы узнали, что в защищённом режиме применена новая схема преобразования логического адреса в физический, сильно отличающаяся от используемой в реальном режиме. Эта схема даёт, в частности, возможность адресовать непосредственно до 16 мегабайт физической памяти.
  • Для преобразования адреса процессор i80286 использует таблицы дескрипторов, в которых хранятся базовые адреса сегментов, размеры сегментов и другая информация.
  • Одновременно процессор может использовать две таблицы дескрипторов - локальную (LDT) и глобальную (GDT). Используемая таблица определяется полем TI селектора.
  • Расположение и размер таблицы GDT должны быть загружены в специальный регистр процессора - GDTR. Это можно сделать командой LGDT.
  • В таблице GDT могут находиться дескрипторы сегментов кода, данных и системные дескрипторы. В частности, там может находиться дескриптор, описывающий таблицу локальных дескрипторов LDT (если эта таблица используется).
  • Перед переключением в защищённый режим программа должна подготовить таблицу GDT и загрузить её адрес в регистр GDTR.



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