Селектор

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Селектор (англ. selector) — число, хранящееся в сегментном регистре; это 16-битная структура данных, которая является идентификатором сегмента. Селектор указывает не на сам сегмент в памяти, а на его дескриптор, в таблице дескрипторов… Селектор «живёт» в сегментном регистре (CS, DS, ES, FS, GS, SS).

В реальном режиме содержимое каждого сегментного регистра представляет собой номер параграфа — 16-байтового участка памяти, выровненного на границу 16 байт.

В защищённом режиме каждый сегментный регистр делится на три части, как показано ниже:

15         3  2   1   0
 +--------------------+
 | Index    | TI | RPL|  
 +--------------------+

Бит TI в этом случае указывает, какая таблица дескрипторов должна использоваться (нуль соответствует глобальной таблице дескрипторов, единица — локальной таблице дескрипторов).

Поле Index является номером (индексом) дескриптора в таблице дескрипторов, который должен использоваться при вычислении линейного адреса. Наконец, поле RPL используется для контроля прав доступа программы к сегменту и является запрошенным уровнем привилегий. Частным случаем RPL является текущий уровень привилегий — CPL, чьё значение в любой момент времени находится в сегментном регистре CS.

См. также[править | править вики-текст]