Организация ввода-вывода. Часть 2. Драйверы для WINDOWS NT. Рощин А.В. - 24 стр.

UptoLike

Составители: 

24
привилегий из предыдущего стека в новый копируется фиксированное
число слов, заданное в вентиле. Команда межсегментного возврата RET с
выравниванием указателя стека при возврате корректно восстановит
значение предыдущего указателя.
Привилегии и битовая карта разрешения ввода/вывода
контролируют возможность выполнения операций ввода/вывода и
управления флагом разрешения прерываний IF. Уровень привилегий
ввода/вывода
определяется полем IOPL (Input/Output Privilege Level)
регистра флагов. Значение IOPL можно изменять только при CPL= 0.
При CPL
IOPL на операции ввода/вывода и управление флагом
разрешения прерываний IF никаких ограничений не накладывается. При
CPL > IOPL попытка ввода/вывода, выполненная с TSS класса 80286,
вызывает исключение #GP (отказ). Если CPL > IOPL, а с задачей связан
TSS класса 386+, инструкции ввода/вывода могут выполняться только по
адресам портов, для которых установлены нулевые биты в
карте
разрешения ввода/вывода, имеющейся в TSS. Попытки обращения к
портам, которым соответствуют единичные биты карты или которые не
попали в карту (ее размер может усекаться), вызывают исключение #GP.
При CPL
IOPL попытка выполнения команд CLI или STI вызывает
исключение #GP. Неявное управление флагом разрешения прерываний
инструкциями загрузки или восстановления регистра флагов блокируется
без генерации исключений.
привилегий из предыдущего стека в новый копируется фиксированное
число слов, заданное в вентиле. Команда межсегментного возврата RET с
выравниванием указателя стека при возврате корректно восстановит
значение предыдущего указателя.
     Привилегии    и   битовая    карта     разрешения    ввода/вывода
контролируют   возможность    выполнения   операций   ввода/вывода     и
управления флагом разрешения прерываний IF. Уровень привилегий
ввода/вывода определяется полем IOPL (Input/Output Privilege Level)
регистра флагов. Значение IOPL можно изменять только при CPL= 0.
     При CPL ≤ IOPL на операции ввода/вывода и управление флагом
разрешения прерываний IF никаких ограничений не накладывается. При
CPL > IOPL попытка ввода/вывода, выполненная с TSS класса 80286,
вызывает исключение #GP (отказ). Если CPL > IOPL, а с задачей связан
TSS класса 386+, инструкции ввода/вывода могут выполняться только по
адресам портов, для которых установлены нулевые биты в карте
разрешения ввода/вывода, имеющейся в TSS. Попытки обращения к
портам, которым соответствуют единичные биты карты или которые не
попали в карту (ее размер может усекаться), вызывают исключение #GP.
     При CPL ≤ IOPL попытка выполнения команд CLI или STI вызывает
исключение #GP. Неявное управление флагом разрешения прерываний
инструкциями загрузки или восстановления регистра флагов блокируется
без генерации исключений.




                                  24