7.4.2.1. Селекторы
Селектор-это 16-разрядный указатель, который, будучи
загружен в регистр или использован с определенными командами, выбирает определенные
дескрипторы. В логическом
адресе селекторная часть определяет индивидуальный дескриптор, во-первых, определяя таблицу
дескрипторов, а во-вторых, указывая этот дескриптор в данной таблице. Общий формат
селектора показан на рис. 2.1. Различные термины, такие как дескриптор и таблица глобальных
дескрипторов, определяются позже в этой главе.
Селектор имеет следующие поля:
Индекс-биты 15-4. Индекс выбирает один из 8192 дескрипторов в таблице
дескрипторов. Процессор умножает значение этого индекса на восемь (длину
дескриптора) и добавляет результат к базовому адресу таблицы дескрипторов. Это обеспечивает правильный вход в таблицу.
Индикатор таблицы TI-бит З. Определяет таблицу дескрипторов,
на которую ссылается селектор: нуль
означает таблицу глобальных дескрипторов (GDT), а единица-текущую
таблицу локальных дескрипторов (LDT).
Запрашиваемый уровень привилегий RPL-
биты 2-0. Используются
механизмом защиты
системы, более подробно рассматриваемым в гл. 6.

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