- •6. Модель прикладного выполнения в системной среде Intel®Itanium™
- •6.1. Режимы набора инструкций
- •6.1.1. Выполнение набора инструкций в среде IntelItanium.
- •6.1.2. Выполнение набора инструкций ia-32
- •6.1.3. Переключения наборов инструкций
- •6.1.3.1. Инструкция jmpe
- •6.1.3.2. Инструкция перехода к ia
- •6.1.4. Переключения режимов работы ia-32
- •6.2. Модель состояния прикладных регистров ia-32
- •6.2.1. Регистры общего назначения ia-32
- •6.2.2. Указатель инструкций ia-32
- •6.2.3. Сегментные регистры ia-32
- •6.2.3.1. Сегменты данных и кода
- •6.2.3.2. Сегментный дескриптор и целостность среды
- •6.2.3.2.1. Защищенный режим.
- •6.2.3.2.2 Режим vm86
- •6.2.3.2.2 Реальный режим
- •6.2.3.3. Проверки целостности среды ia-32 во время выполнения
- •6.2.4. Прикладной ia-32 регистрEflag
- •6.2.5. Ia-32 регистры с плавающей точкой
- •6.2.5.1. Ia-32 стек регистров с плавающей точкой
- •6.2.5.2. Специальные случаи
- •6.2.5.3. Регистры управления с плавающей точкой ia-32.
- •6.2.5.4. Ia-32 среда с плавающей точкой
- •6.2.6. Ia-32 регистры ммх технологии
- •6.2.7. Ia-32 регистрыSse
- •6.3. Обзор моделей памяти
- •6.3.1. Упорядочивание памяти
- •6.3.2. Сегментация ia-32
- •6.3.3. Самомодифицирующийся код
- •6.3.4. Взаимодействия упорядочивания памяти.
- •6.4. Использование кодом ia-32, регистров Itanium
- •6.4.1. Механизм стека регистров
- •6.4.2. Alat
- •6.4.3. Влияние NaT/NaTValна инструкцииIa-32
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должна гарантировать, что в дескрипторных регистрах всех сегментов разрешены чтение/запись, включая и кодовый сегмент (для нормальной работы реального режима).