Скачиваний:
57
Добавлен:
16.04.2013
Размер:
480.26 Кб
Скачать

6.2.3.2.1. Защищенный режим.

Перед входом в набор инструкций IA-32, для установки дескрипторов сегментов для среды защищенного режима, программное обеспечение типаItaniumдолжно следовать следующим правилам:

  • Программа типа Itaniumдолжна гарантировать, что поле дескрипторного регистра стекового сегментаDPL==PSR.spl.

  • Для дескрипторных регистров сегментов DSD,ESD,FSDи GSD, программа типаItaniumдолжна гарантировать, что полеDPL>=PSR.spl.

  • Для дескрипторного регистра сегмента CSD, программа типаItaniumдолжна гарантировать, что полеDPL==PSR.spl(кроме соответствующих кодовых сегментов).

  • Программа должна гарантировать, что дескрипторные регистры всех сегментов кода, стека и данных не содержат кодирования для любых системных сегментов.

  • Программа должна гарантировать, что A-бит установлен в единицу в дескрипторных регистрах всех сегментов.

  • Программа должна гарантировать, что для всех присутствующих сегментов данных P-бит установлен в 1, а для всех нулевых сегментов данных он 0.

6.2.3.2.2 Режим vm86

Перед входом в набор инструкций IA-32, для установки дескрипторов сегментов для средыVM86, программное обеспечение типаItaniumдолжно следовать следующим правилам:

  • PSR.splдолжно быть равно 3 (илиIPSR.splдолжно быть равно 3 дляrfi).

  • Программа типа Itaniumдолжна гарантировать, что поле дескрипторного регистра стекового сегментаDPL==PSR.spl==3 и установить 16-битовые запись/чтение данных и расширение.

  • Для дескрипторных регистров сегментов CSD,DSD,ESD,FSDи GSD, программа типаItaniumдолжна гарантировать, что полеDPL==3 и сегмент установлен для 16-битовых записи/чтения данных и расширения.

  • Программа должна гарантировать, что дескрипторные регистры всех сегментов кода, стека и данных не содержат кодирования для любых системных сегментов.

  • Программа должна гарантировать, что в дескрипторных регистрах всех сегментов P-бит иA-бит установлены в единицу.

  • Программа должна гарантировать, что соотношение Base=Selector*16 поддерживается для всех дескрипторных регистров сегментовCSD,DSD,ESD,SSD,FSDи GSD, в противном случае работа процессора не предсказуема.

  • Программа должна гарантировать, что для всех дескрипторных регистров сегментов CSD,DSD,ESD,SSD,FSDи GSD, значения границы установлены в 0xFFFF, в противном случае может генерироваться ложные ошибки границы сегмента (GPFaultилиStackFault).

  • Программа должна гарантировать, что в дескрипторных регистрах всех сегментов разрешены чтение/запись, включая и кодовый сегмент. Процессор будет игнорировать ошибки полномочий выполнения.

6.2.3.2.2 Реальный режим

Перед входом в набор инструкций IA-32, для установки дескрипторов сегментов для среды защищенного режима, программное обеспечение типаItaniumдолжно следовать следующим правилам (иначе работа программы будет непредсказуема):

  • Программа типа Itaniumдолжна гарантировать, что полеPSR.splравно 0.

  • Программа типа Itaniumдолжна гарантировать, что поле дескрипторного регистра стекового сегментаDPLравно 0.

  • Программа должна гарантировать, что дескрипторные регистры всех сегментов кода, стека и данных не содержат кодирования для любых системных сегментов.

  • Программа должна гарантировать, что в дескрипторных регистрах всех сегментов P-бит иA-бит установлены в единицу.

  • Для нормальных 64К операций реального режима, программа должна гарантировать, что соотношение Base=Selector*16 поддерживается для всех дескрипторных регистров сегментовCSD,DSD,ESD,SSD,FSDи GSD.

  • Для нормальных 64К операций реального режима, программа должна гарантировать, что для всех дескрипторных регистров сегментов CSD,DSD,ESD,SSD,FSDи GSD, значения границы установлены в 0xFFFF, а размер сегмента установлен 16-битным (64К).

  • Программа типа Itaniumдолжна гарантировать, что в дескрипторных регистрах всех сегментов разрешены чтение/запись, включая и кодовый сегмент (для нормальной работы реального режима).