Содержание

Оперативная информация по командам для защищенного режима.

		
   В этой главе обсуждаются команды 80386 процессора, которые
используются в защищенном режиме. Все команды 80386 имеются в
наличии в защищенном режиме.
   В защищенном режиме 80386-й может обрабатывать 32-битные
кодовые  сегменты (по умолчанию, бит D в код-сегментном
дескрипторе равен 1) или 16-битные кодовые сегменты (D=0).
Использование 32-битных кодовых сегментов позволяет полностью
использовать 80386-й; 16-битные кодовые сегменты дают  полную
совместимость с работой 80286-го в защищенном режиме.
   Имеются размеры операндов 8 бит, 16 бит,  32  бита.	Когда
80386-й обрабатывает 32-битные кодовые сегменты, по умолчанию
используется 32-битный способ адресации, как описано в	главе
7. Когда  он  обрабатывает  16-битные  кодовые	сегменты,  по
умолчанию  используется  16-битный  способ   адресации,   как
описано  в  главе  4. Когда  выполняется  16-битный  кодовый
сегмент, тем не менее, имееется несколько новых  черт  80386.
Так, строго говоря, 16-битный защищенный режим	80386  -  это
режим работы с большими возможностями, чем  защищенный	режим
80286. Имеются отладочные регистры 80386, и программы отладки
могут	 использовать их для особой отладочной производительности.
Также имеются регистры постраничных тестов и контрольные регистры,
используемые  при  подготовке введения защищенного режима. 
Два новых сегментных регистра FS и  GS позволяют повысить 
эффективность  программ. Имеются команды работы с битами и 
команды двойного сдвига.
		       

Наличие команд

Как замечено, все команды 80386 имеются в защищенном режиме. По сравнению с защищенным режимом 80286 имеются 12 новых команд. Новая совершенная сдвиговая форма Jcc команды (команды условного перехода) и совершенно стандартная форма IMUL-команды (команды знакового умножения) имеются в защищенном режиме 80386. Эти дополнительные команды позволяют новые программы 80386-го выполнять более эффективно, чем программы 8086 или 80286. Заметим, что определенные команды защищенного режима могут также быть выполнены в реальном режиме. Эти команды позволяют инициализировать систему для работы в защищенном режиме, как показано в главе 11. Как только защищенный режим установлен, многие из этих команд могут быть выполнены только на привелегированном нулевом уровне, самом привелегированном, из-за их значительной роли в системном программировании.

Ограничения на размер сегмента в защищенном режиме

В защищенном режиме максимальный размер сегмента определяется содержимым дескриптора. Кодовые сегменты и сегменты данных могут быть как 16-битными сегментами, имеющими максимальное смещение FFFFh байт, так и 32-битными сегментами, имеющими максимальное смещение FFFFFFFFh байт. Бит D сегментного дескриптора (устанавливаемый по умолчанию) определяет 16-битные это сегменты (D=0) или 32-битные (D=1). Граница сегмента требует, чтобы эффективные адреса, сгенерированные в защищенном режиме, были меньше или равны предельному размеру сегмента. В случае многобайтных операндов, таким образом, требуется, чтобы весь операнд в целом был смещен меньше или равно пределу. В защищенном режиме попытка доступа к операндам, которые лежат целиком или частично за пределами сегмента, приводит к нарушению и вызывает исключительную ситуацию. ( Нарушение границ сегмента дальше описывается в главе 16.) Все операнды, таким образом, должны лежать внутри определенной границы сегмента.
Содержание Вперед
Сайт создан в системе uCoz