ВУЗ:
Составители:
26
o загрузка только исполняемых сегментов в DS, ES или SS,
o загрузка сегмента данных в CS.
Проверка ссылок операндов:
− запись в сегмент кода или в сегмент данных только для чтения –
#GP,
− чтение из только исполняемого сегмента кодов – #GP,
− превышение лимита сегмента – #SS или #GP.
Проверка привилегий инструкций:
−
CPL
≠
0 при выполнении команд LIDT, LLDT, LGDT, LTR, LMSW,
CTS, HLT, INVD, INVLPG, WBINVD, операции с регистрами DRn,
TRn, CRn – #GP,
− CPL > IOPL при выполнении команд STI, CLI,
− CPL > IOPL при выполнении инструкций IN, INS, OUT, OUTS с
портами, не разрешенными битовой картой ввода/вывода – #GP.
При выполнении команд IRET и POPF c недостаточным уровнем
привилегий биты IF и IOPL в регистре флагов не изменяются, исключения
не
генерируются:
− IF не меняется при CPL > IOPL,
− IOPL не меняется, если CPL >0.
Проверка при передаче управления по инструкциям JMP, CALL, RET,
INT IRET включают, как проверку ссылок по лимиту (в ближних формах
JMP, CALL, RET выполняются только эти проверки), так и проверку
правил привилегий при межсегментных передачах через вентили.
Для того, чтобы задачи не вызывали срабатывания
защиты, в систему
команд введены специальные инструкции тестирования указателей. Они
позволяют быстро удостовериться в возможности использования селектора
или сегмента без риска порождения исключения:
o загрузка только исполняемых сегментов в DS, ES или SS,
o загрузка сегмента данных в CS.
Проверка ссылок операндов:
− запись в сегмент кода или в сегмент данных только для чтения –
#GP,
− чтение из только исполняемого сегмента кодов – #GP,
− превышение лимита сегмента – #SS или #GP.
Проверка привилегий инструкций:
− CPL≠ 0 при выполнении команд LIDT, LLDT, LGDT, LTR, LMSW,
CTS, HLT, INVD, INVLPG, WBINVD, операции с регистрами DRn,
TRn, CRn – #GP,
− CPL > IOPL при выполнении команд STI, CLI,
− CPL > IOPL при выполнении инструкций IN, INS, OUT, OUTS с
портами, не разрешенными битовой картой ввода/вывода – #GP.
При выполнении команд IRET и POPF c недостаточным уровнем
привилегий биты IF и IOPL в регистре флагов не изменяются, исключения
не генерируются:
− IF не меняется при CPL > IOPL,
− IOPL не меняется, если CPL >0.
Проверка при передаче управления по инструкциям JMP, CALL, RET,
INT IRET включают, как проверку ссылок по лимиту (в ближних формах
JMP, CALL, RET выполняются только эти проверки), так и проверку
правил привилегий при межсегментных передачах через вентили.
Для того, чтобы задачи не вызывали срабатывания защиты, в систему
команд введены специальные инструкции тестирования указателей. Они
позволяют быстро удостовериться в возможности использования селектора
или сегмента без риска порождения исключения:
26
Страницы
- « первая
- ‹ предыдущая
- …
- 24
- 25
- 26
- 27
- 28
- …
- следующая ›
- последняя »
