10.7.2. Проверка типа сегмента
- Загрузка селектора (и дескриптора) в регистр:
- в CS можно загрузить только сегмент кода;
- в DS, ES, FS, GS можно загрузить только селектор сегмента данных, сегмента кода, доступного для чтения, или нулевой селектор;
- в SS можно загрузить только сегмент данных, доступный для записи;
- в LDTR можно загрузить только сегмент LDT;
- в TR можно загрузить только сегмент TSS.
- Обращение к памяти:
- никакая команда не может писать в сегмент кода;
- никакая команда не может писать в сегмент данных, защищенный от записи;
- никакая команда не может читать из сегмента кода, защищенного от чтения;
- нельзя обращаться к памяти, если селектор в сегментном регистре нулевой.
- Исполнение команды, использующей селектор в качестве операнда:
- дальние CALL и JMP могут выполняться только в сегмент кода, шлюз вызова, шлюз задачи или сегмент TSS;
- команда LLDT может обращаться только к сегменту LDT;
- команда LTR может обращаться только к сегменту TSS;
- команда LAR может обращаться только к сегментам кода и данных, шлюзам вызова и задачи, LDT и TSS;
- команда LSL может обращаться только к сегментам кода, данных, LDT и TSS;
- элементами IDT могут быть только шлюзы прерываний, ловушек и задач.
- Некоторые внутренние операции:
- при переключении задач целевой дескриптор может быть только TSS или шлюзом задачи;
- при передаче управления через шлюз сегмент, на который шлюз указывает, должен быть сегментом кода (или TSS для шлюза задачи);
- при возвращении из вложенной задачи селектор в поле связи TSS должен быть селектором сегмента TSS.
п»ї
"target=_blank><\/a>")
//-->