7.4.2.1. Селекторы

 

Селектор-это 16-разрядный указатель, который, будучи загружен в регистр или использован с определенными командами, выбирает определенные дескрипторы. В логическом адресе селекторная часть определяет индивидуальный дескриптор, во-первых, определяя таблицу дескрипторов, а во-вторых, указывая этот дескриптор в данной таблице. Общий формат селектора показан на рис. 2.1. Различные термины, такие как дескриптор и таблица глобальных дескрипторов, определяются позже в этой главе.

Селектор имеет следующие поля:

Индекс-биты 15-4. Индекс выбирает один из 8192 дескрипторов в таблице дескрипторов. Процессор умножает значение этого индекса на восемь (длину дескриптора) и добавляет результат к базовому адресу таблицы дескрипторов. Это обеспечивает правильный вход в таблицу.

Индикатор таблицы TI-бит З. Определяет таблицу дескрипторов, на которую ссылается селектор: нуль означает таблицу глобальных дескрипторов (GDT), а единица-текущую таблицу локальных дескрипторов (LDT).

Запрашиваемый уровень привилегий RPL- биты 2-0. Используются механизмом защиты системы, более подробно рассматриваемым в гл. 6.

Рис. 2.1. Формат селектора.

Первый вход в таблицу GDT процессором не используется. Селектор, имеющий нулевые индекс и индикатор таблицы, т. е. селектор, указывающий на первый вход в таблицу GDT, называется нуль-селектором. Загрузка нуль-селектора в любой регистр сегмента, отличный от регистра CS или SS, не вызывает в МП 80386 обработки исключения. Но использование этого регистра сегмента для доступа к памяти вызывает обработку исключения. Это удобно для выявления случайных ссылок.

 

 

HotLog

Заказчику web дизайна и программирования - каталог сайтов, обзор дизайн студий