Для адресации операнда в памяти селектор сегмента данных должен быть загружен в регистр сегмента данных (регистры DS, ES, FS, GS или SS). Процессор проверяет уровни привилегированности сегментов. Проверка выполняется при загрузке селектора сегмента. Как показано на Рисунке 6-3, в проверке привилегированности этого типа участвуют три различных уровня привилегированности.
Три проверяемых уровня привилегированности:
CPL (текущий уровень привилегированности программы). Он хранится в двух младших битах регистра CS.
RPL (уровень привилегированности источника запроса) из селектора, используемого для задания сегмента, содержащего операнд. Этот уровень хранится в двух младших битах сегментного регистра, используемого для доступа к операнду (регистра SS, DS, ES, FS или GS). Если операнд находится в стековом сегменте, то RPL и CPL совпадают.
Команды могут загружать сегментный регистр только если DPL сегмента имеет такой же или меньший уровень привилегированности (больший номер привилегированности), чем у наименее привилегированного CPL и RPL селектора.
Адресуемый домен задачи изменяется при изменении его CPL. Если CPL равен 0, то сегменты данных всех уровней привилегированности доступны; когда CPL равен 1, то доступны только сегменты данных с уровнями привилегированности от 1 до 3; а когда CPL равен 3, то доступны только сегменты данных с уровнем привилегированности 3.