ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.



 

Часть 1

			   СОДЕРЖАНИЕ
			    ЧАСТЬ I
      Введение в 32-х разрядный микропроцессор INTEL 80386
			    ГЛАВА 1
1.Почему МП 80386 важен ?					1
2.Как работает 80386						2
3.Начальное представление архитектуры микропроцессора		4
4.Конструкция кристалла МП 80386				7
			    ГЛАВА 2
	       Данные,набор регистров и адресация
1.Размеры и типы данных 					9
2.Поле размера операнда и префикс размера операнда	       10
3.Регистры 80386					       12
4.Организация данных					       19
5.Адресация памяти					       23
6.Режимы адресации					       25
			    ГЛАВА 3
		СИСТЕМА КОМАНД:краткое описание
1.Команды перемещения данных				       29
2.Команды целочисленной арифметики			       32
3.Логические команды					       33
4.Команды манипуляции битами				       35
5.Команды управления программой 			       38
6.Команды управления системой				       40
7.Префиксы команд					       43
8.Формат команд 					       44
			    ЧАСТЬ II
		      РЕАЛЬНЫЙ РЕЖИМ 80386
			    ГЛАВА 4
	     АДРЕСАЦИЯ ПАМЯТИ В 16-и БИТНОМ РЕЖИМЕ
1.Введение в страничную организацию памяти		       47
2.Кодирование режимов 16-и битной адресации		       54
			    ГЛАВА 5
	     ДЕТАЛЬНОЕ ОПИСАНИЕ 16-и БИТНЫХ КОМАНД
1.Доступность команд					       57
2.Доступность признаков 				       58
			    ГЛАВА 6
	   ПРЕРЫВАНИЯ И ИСКЛЮЧЕНИЯ В РЕАЛЬНОМ РЕЖИМЕ
1.Распознование прерываний и исключений 		       60
2.Векторы прерываний					       61
3.Выполнение программ обработки прерываний		       62
4.Детали обработки исключительных ситуаций		       66
			    ЧАСТЬ III
		     ЗАЩИЩЁННЫЙ РЕЖИМ 80386
			    ГЛАВА 7
1.Адресация памяти в 32-х разрядном режиме		       67
2.Введение в организацию страничной памяти		       68
3.Режим косвенно-регистровой адресации			       72
4.Режим косвенной адресации				       78
5.Кодирование 32-х битного адресного режима		       80
			    ГЛАВА 8
       БАЗИСНОЕ ИСПОЛЬЗОВАНИЕ ПРИВИЛЛЕГИРОВАННЫХ УРОВНЕЙ
		      И СИСТЕМ ПРЕРЫВАНИЙ
1.Использование разбиения памяти на страницы		       84
2.Использование 32-х разрядных сегментов памяти для простых
защищённых систем					       85
3.Дескрипторы сегментов для простой защищённой системы	       86
4.Глобальная таблица дескрипторов			       90
5.Формат селектора в защищённом режиме			       92
6.Использование программных прерываний			       93
7.Вентили прерываний					       94
8.Использование уровней привиллегий			       96
9.Механизм межуровневой передачи			       97
10.32-х битный сегмент состояния задачи 		       99
			    ГЛАВА 9
		   СИСТЕМА СТРАНИЧНОЙ ПАМЯТИ
1.Страничная структура					      104
2.Выравнивание границ страниц и сегментов		      105
3.Сравнение уровня привиллегий страниц и сегментов	      106
4.Строка каталога таблицы страниц			      107
5.Строка таблицы страниц				      108
6.Защита страниц					      109
7.Процесс трансляции в деталях				      111
8.Использование страничной организации памяти для виртуальной
памяти							      112
9.Организация ТLВ					      114
			    ГЛАВА 10
     ОПЕРАТИВНАЯ ИНФОРМАЦИЯ ПО КОМАНДАМ ЗАЩИЩЁННОГО РЕЖИМА
1.Наличие команд					      116
			    ГЛАВА 11
1.Инициализация простых защищённых 32-х битных систем	      119
2.Процедура 32-х битной инициализации супервизора и данных    121
3.Установка сегмента данных пользователя		      124
			    ЧАСТЬ IV
			    ГЛАВА 12
1.Виртуальный режим 8086				      126
2.Значение виртуального режима 8086			      127
3.Работа в виртуальном режиме 8086			      128
4.Прерывания команд в виртуальном режиме 8086		      130
5.Выход из виртуального режима 8086			      130
6.Поразрядная карта разрешения ввода/вывода в виртуальном
режиме 8086						      134
			    ГЛАВА 13
	    ПРИМЕР ВИРТУАЛЬНОГО РЕЖИМА 8086 ДЛЯ РС-DОS	      136
			    ЧАСТЬ V
	   БОЛЕЕ ГЛУБОКОЕ ОПИСАНИЕ ЗАЩИЩЁННОГО РЕЖИМА
			    ГЛАВА 14
1.Таблицы дескрипторов и их содержимое			      139
2.Тип и формат дескриптора сегмента			      140
3.Тип переключателей и их формат			      143
4.Таблицы дескрипторов					      146
5.Системные регистры					      147
			    ГЛАВА 15
			МНОГОЗАДАЧНОСТЬ
1.Виртуальное адресное пространство задачи		      153
2.Состояние задачи					      154
3.Переход от задачи к задаче				      155
4.Вложенные задачи					      157
			    ГЛАВА 16
1.Прерывания и исключительные ситуации			      159
2.Аппаратура прерываний и таблица дескрипторов прерываний     160
3.Исключительные ситуации				      162
4.Распознование исключительных ситуаций 		      166
5.Другая информация об ошибках				      168
6.Список исключительных ситуаций			      170
			    ГЛАВА 17
		      ОСОБЕННОСТИ ОТЛАДКИ
1.Встроенные отладочные возможности			      186
2.Отладочные регистры					      187
3.Прерывания по адресу данных с отладочными регистрами	      189
4.Средства отладки совместимые с 8086			      191
			  ПРИЛОЖЕНИЕ А
		 Флаговый регистр и коды условий	      191
			  ПРИЛОЖЕНИЕ В
	   Набор инструкций в деталях и номера страниц	      194
			      - 1 -
			    ЧАСТЬ 1
       Введение в 32-х разрядный микропроцессор INTEL 80386
       ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Данная  часть  содержит введение в положительные возможности,
вызываемые мощностью микропроцессора (МП)  80386.  Она	описывает
функции  нового  МП 80386, в сравнение с предшествующими МП фирмы
Intel,	 исходя из преимуществ для пользователей нового компьюте-
ра 80386. Затем она начнет углубляться в изучение МП  80386,  как
вычислительную машину с большими возможностями.
    Так как описание является в значительной степени техническим,
то  данная  часть  закладывает	основу	для  полного понимания МП
80386, охватывая такие основные части, как  типы  данных  и  32-х
разрядные способы адресации к памяти. В заключение эта часть кни-
ги представит каждую категорию наборов команд МП 80386 и предста-
вит таблицы краткого описания команд.
			     ГЛАВА 1
		      Микропроцессор 80386
		      ДДДДДДДДДДДДДДДДДДДД
    Возможно,что Intel 80386 более многосторонний существующий ми
к-
ропроцессор (МП), который уже разработан. Конечно, пользователи
компьютеров подобно разработчикам давно желали его исполнения.При
влекательностью МП 80386 является не только длинное машинное слов
о,
но особая  производительность важна не для всех пользователей. В
некоторой степени, многосторонность  МП 80386 является	"ключем",
позволяющим  любому  компьютеру  80386	работать как с новым 32-х
разрядным процессором, так и с совместимым 16-ти разрядным. С дру
гой стороны, скорость вычислений МП 80386 очень важна,	т.к.  она
дает  возможность  применять компьютер почти везде. Для многих из
нас, многосторонность и исполнение МП 80386 интересны,	т.к.  су-
ществующее программное обеспечение  (ПО)  может  работать  значи-
тельно быстрее, чем ранее, все же новое ПО для 32-х разрядного МП
80386 обещает также повысить скоростные и вычислительные характе-
ристики компьютера. В этой учебной и справочной книге, как только
мы  придем  к  пониманию МП 80386, мы узнаем о его многосторонней
архитектуре и о его больших возможностях.
		      Почему МП 80386 важен
		      ДДДДДДДДДДДДДДДДДДДДД
    32-х разрядная архитектура 80386 важна для пользователей ПЭВМ
фирмы IBM, построенных на 8086 или  80286,  поскольку  они  имеют
только	16-ти  разрядную архитектуру. 16-ти разрядная архитектура
этих больших чипов полностью содержится в 32-х	разрядном  80386,
как поднабор  его полных функций. По этой причине, 32-х разрядный
80386 может имитировать 16-ти разрядный МП 8086 или МП 80286, де-
лая 80386 полностью совместимым "сверху-вниз"  с обширными накоп-
лениями ПО, написанного для его популярных предшественников. Т.е.
80386  выполняет тысячу программ, написанных для ПЭВМ фирмы IBM и
для всех других компьютеров, построенных  на  основе  МП  8086	и
80286.
    МП 80386  является очень значительным МП, влияющим на деловой
и технический мир, как из-за его совместимости с семейством 8086,
так  и	из-за  фантастических возможностей его новых функций. Эти
два свойства, сильная наследственность и  функциональные  возмож-
ности, об`единенные в один чип, являются "связью" между настоящим
и будущим развитием программного обеспечения. Известные техничес-
кие, экономические журналы и даже газеты утверждают, что МП 80386
привлекают внимание разработчиков и пользователей компьютеров.
			      - 2 -
    Для  того, чтобы реализовать преимущества, предполагаемых но-
вых функций МП 80386, базовое ПО  РС  прикладных  и  операционных
систем	уже совершенствуется. Это самый обещающий признак, что МП
80386 будет продолжать позитивное влияние на всех нас. Помимо его
в целом возрастающего влияния на всех пользователей ПЭВМ, и  осо-
бенно  на  "точку зрения" программиста, 80386 интересный и значи-
тельный компьютер. Технически архитектура 80386 совершенна и  эф-
фективна. ПЭВМ PC80386 уже случайно размещенные в офисах и на за-
водах  дают поизводительность 4 MIPS (миллион команд в секунду) и
позволяют писать программы для выполнения задач прежде предназна-
ченных для специализированных рабочих станций и мини-ЭВМ.
		       Как работает 80386
		       ДДДДДДДДДДДДДДДДДД
    МП 80386 целиком разрабатывался для выполнения 32-х разрядных
операций, но он может также функционировать как быстродействующий
16-ти разрядный МП 8086 или 80286. Для того, чтобы изучить 80386,
нам необходимы основные знания по трем режимам, или  способам,	в
которых МП 80386 может работать. Эти режимы работы, названные ре-
альными,  защищенными  и  виртуальными "8086", дают 80386 большую
совместимость и гибкость. Главные отличительные  черты	МП  80386
это  режимы  адресации к памяти и емкость памяти, к которой можно
адресоваться.
       ічД8086/8088ДДДці
       іПЭВМ РС        і
       ГДДДДДДДДДДДДДДДґ
       і16-ти разряднаяі
       і  операция     і
       АДДДДДДДДДДДДДДДЩ
       ічДДДДДДДДДДДДДД80286ДДДДДДДДДДДДДДці
       і       ПЭВМ РС/АТ		   і
       ГДДДДДДДДДДДДДДДї  ЪДДДДДДДДДДДДДДДДґ
       іреальный режим і  ізащищенный режимі
       і(как 16-ти раз.ічці16-ти разрядный і
       і    8086)      і  АДДДДДДДДДДДДДДДДЩ
       АДДДДДДДДДДДДДДДЩ
       ічДДДДДДДДДДДДДДДДДДДДДДДДДДД80386ДДДДДДДДДДДДДДДДДДДДДДДД
ці
       і		  ПЭВМ 80386				  і
       ГДДДДДДДДДДДДДДДї  ЪДДДДДДДДДДДДДДДДДДї	ЪДДДДДДДДДДДДДДДДД
       іреальный  режимі  і защищенный	режимі	івертуальный режимі
       і(как 16-ти раз.ічці16-ти    і32-ух   ічці(как 8086,но под
-і
       і    8086)      і  іразрядныйіразряд- і	ічиняемый защищен-
       і	       і  і(80286). і ный.   і	іному режиму).	  і
       АДДДДДДДДДДДДДДДЩ  АДДДДДДДДДДДДДДДДДДЩ	АДДДДДДДДДДДДДДДДД
    Рис 1.1 Развитие режимов работы 8086/8088,80286 и 80386.
    На рис. 1.1 показаны режимы работы МП 80386 и их развитие  во
времени. Рисунок начинается с 16-ти разрядных МП 8086/8086, кото-
рые имеют только реальный режим, позволяющий адресоваться к памя-
ти емкостью 1 Мбайт. 16-ти разрядный 80286, кроме реального режи-
ма имеет защищенный режим и емкость  адресуемой  памяти  в 16 раз
выше, чем в 8086/88.
    80386 добавляет 32-х разрядные операции в защищенном режиме и
дает возможность адресоваться по крайней мере к 4 мбайтам памяти.
80386 также имеет вспомогательный виртуальный режим "8086", кото-
рый  обеспечивает совместимость, существующего программного обес-
печения (ПО) 8086 с МП 80386.
			      - 3 -
    Работа 32-х разрядного 80386 всегда  начинается  с	реального
режима,  совместимого  с  режимами работы 8086. Хотя это возможно
является неожиданностью, но вы можете видеть, что  такая  особен-
ность  позволяет, существующее программное обеспечение, без изме-
нений, непосредственно использовать для 80386. Реальным режим на-
зывается потому, что ПО, совместимое с 8086 работает с	реальными
(физическими) адресами.
    В  реальном  режиме,  80386  работает также как самый быстро-
действующий МП 8086. После запуска 80386 можем перейти к работе в
защищенном режиме.
    Защищенный режим 80386 обеспечивает 32-х разрядные	данные	и
адресацию, и виртуальную память с поддержкой разбиения на страни-
цы.  Этот  режим  является "ориентиром" при развитии нового прог-
раммного обеспечения.
    В табл. 1.1. кратко представлены 16-ти и 32-х разрядные  опе-
рации, использующие данные режимы. Полные 32-х разрядные операции
аппаратно-реализованы в защищенном режиме (16-ти разрядные опера-
ции  могут также иметь место в этом режиме, так как 16-ти разряд-
ный МП 80286 может работать в защищенном  режиме).  В  защищенном
режиме,  благодаря наличию 32-х и 16-ти разрядной операции, 80386
может дать возможность его устройству разбиение на страницы  пол-
ной  поддержки виртуальной памяти, освобождая программиста от ог-
раниченности физической  адресации.  Аппаратные  средства  защиты
80386 одновременно активизируется, поэтому названы защищенный ре-
жим.  Данные  аппаратные  средства  защиты,  размещенные на одном
кристалле гарантируют высокую надежность системы.
  Данные способы защиты  дают  уверенность,  что  "целостность"
операционной  системы всегда может быть защищена от вмешательства
пользователя и, что пользователи могут быть  защищены  от  других
пользователей. Общая надежность системы при защищенном режиме за-
висит исключительно от "живучести" операционной системы, но не от
надежности программ пользователя.
    Защищенный	режим  80386  предпочтителен,  из-за наличия 32-х
разрядной операции, поддержки виртуальной  памяти  и  ее  защиты.
Простую систему защищенного режима удобно установить, как мы уви-
дим  из  примеров в главе 1.1, приложениях D и E. Хотя защищенный
режим допускает такие широкие уровни сложности, как требуется. Мы
изучим несколько способов для увеличения сложности системы  защи-
щенного режима.
						     Таблица 1.1
	       16-ти и 32-х разрядные режимы работы
ДДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДД
Дї
16-ти разрядные операцииі32-х разрядныеі       Комментарии	  і
			і   операции   і			  і
ДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДД
Дґ
Реальный режим		і	       іРежим совместимый с 8086  і
Выполнение 16-ти разряд-і	       іЗащищенный режим совмес-  і
ного кода сегмента в за-і	       ітимый с 80286		  і
щищенном режиме 	і	       і			  і
Виртуальный режим 8086	і	       іСреда 8086, создаваемая в і
			і	       ізащищенном режиме	  і
			іВыполнение    іПолная 32-х разрядная ад- і
			і32-х разряд-  іресация и исполнение	  і
			іного кода     і			  і
			ісегмента в    і			  і
			ізащищеном     і			  і
			ірежиме        і			  і
ДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДД
ДЩ
			      - 4 -
    Виртуальный  режим 8086 особенно интересен, т.к. он позволяет
нам работать с любым существующим  программным	обеспечением  для
8086 под управлением 32-х разрядной операционной системы защищен-
ного режима. Включаемое программное обеспечение 8086 может быть и
стандартными  прикладными  программами,  и  операционой  системой
8086, например ОС PC-DOS. Когда программное обеспечение 8086  вы-
полняется  в  виртуальном  режиме 8086, то создается впечатление,
что программы выполняются на МП  8086  (8088).	Хотя  фактически,
главная  операционная система 80386 в защищенном режиме сохраняет
управление всеми ресурсами системы. Виртуальный режим 8086  явля-
ется  элегантной новой чертой, которая обеспечивает совместимость
поколений процессоров. Виртуальный режим 8086 заслуживает  глубо-
кого изучения. Мы сделаем это, включая полные листинги программ в
приложении G, которые действительно работают в	РС-DOS	в  вирту-
альном	режиме	8086.  Вы можете работать с программой монитор на
любом персональном компьютере 80386.
	 Начальное представление архитектуры процессора
	 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Двигаясь от режимов работы 80386 к следующему уровню  детали-
зации, мы рассмотрим архитектуру 80386: 80386 включает новую 32-х
разрядную архитектуру для связи с микропроцессорами фирмы INTEL.
Архитектура  процессора  изображает характеристики 80386, видимые
программистом, использующим один из режимов работы, описанных вы-
ше.
    Основы архитектуры касаются программированных регистров  про-
цессора, типов данных, которые непосредственно распознаются и ме-
тодов адресации операндов к памяти. Кроме того к основным элемен-
там  80386 относятся специальные, интересные архитектурные черты,
такие как регистры прерываний для отладки и идентификации чипа	и
уровней  пересмотра,  которые  позволяют программному обеспечению
распознавать, какой чип работает. Мы  начнем  рассмотрение  основ
80386 с его регистров.
    Несколько пользовательских регистров 80386 используются обыч-
ными программами пользователя. Из 32-х разрядных регистров общего
назначения наиболее часто используемыми являются счетчик команд и
регистр  флага.  Каждый  из  32-х разрядных  РОН содержит обычные
данные и значения адресов текущего  использования.  Заметим,  что
РОН,  показанные на рис. 1.2, могут содержать не только 32-х раз-
рядные данные, но и 16-ти или 8-ми разрядные;32-х разрядный счет-
чик команд указывает на команду, которая будет выполняться.  32-х
разрядный регистр флага содержит несколько полей, шириной в 1 или
2  бита,  которые  содержат важную информацию о состоянии недавно
выполненных команд.
  31	     23 	15	   7	      0
  ГДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДґ
  і	    ЕАХ 	    АН	  АХ   АL     і
  ГДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДґ
  і	    ЕВХ 	    ВН	  BX   ВL     і
  ГДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДґ
  і	    ЕСХ 	    СН	  CX   СL     і
  ГДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДґ  РЕГИСТРЫ
  і	    ЕDХ 	    DН	  DX   DL     і
  ГДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДґ  ОБЩЕГО
  і	    ЕSI 		  SI	      і
  ГДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДґ  НАЗНАЧЕНИЯ
  і	    ЕDI 		  DI	      і
  ГДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДґ
  і	    ЕВР 		  BP	      і
  ГДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДґ
  і	    ЕSР 		  SP	      і
  АДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДЩ
			      - 5 -
  31			15		      0
  ГДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДґ
  і	    EIP 		  IP	      і  СЧЕТЧИК КОМАНД
  ГДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДґ
  і	    EFLAG		  FLAG	      і  РЕГИСТР ФЛАГА
  АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
			15		      0
			ГДДДДДДДДДДДДДДДДДДДДДґ
Сегмент кода программы	і	  CS	      і
			ГДДДДДДДДДДДДДДДДДДДДДґ
Сегмент стека		і	  SS	      і
			ГДДДДДДДДДДДДДДДДДДДДДґ  РЕГИСТРЫ
Сегмент данных		і	  DS	      і
		       ДЕДДДДДДДДДДДДДДДДДДДДДґ  СЕГМЕНТА
Дополнительные	       ші	  ES	      і
регистры сегмента      іГДДДДДДДДДДДДДДДДДДДДДґ
    данных	       іі	  FS	      і
		       іГДДДДДДДДДДДДДДДДДДДДДґ
		       щі	  GS	      і
		       ДБДДДДДДДДДДДДДДДДДДДДДЩ
	    Рис.1.2 Пользовательские регистры 80386.
    80386 имеет также регистры сегмента, которые могут	быть  ис-
пользованы,  по  желанию  программиста для формирования сегментов
программ или данных (примерно около 16	000 возможных  сегментов)
для использования программистом. Сегмент это непрерывный линейный
блок адресного пространства  программиста; любой  32-х	разрядный
сегмент  может	иметь очень большой размер, до 4 миллиардов байт.
Один большой сегмент, об`явленный первоначально, вероятно  доста-
точен для большинства требований системы, поэтому часто использо-
вать  регистры	сегмента  вы можете по своему усмотрению.
    Если мы хотим создать несколько сегментов,то регистры сегмен-
тов позволяют значительно расширить адресное пространство програм
миста,до 64 тысяч биллионов байт программно адресуемой памяти,что
значительно превышает 4 биллиона байт (предела для других 32-х ра
з-
рядных	процессоров).  Мы будем изучать способы использования ре-
гистров сегмента для простых (и не совсем простых) систем.
    Кроме регистров пользователя только что введенных, существуют
несколько системных регистров, которые использует системная прог-
рамма. Системные регистры редко используются обычным  программис-
том, т.к. они управляют широкосистемными параметрами, такими  как
размещение таблиц разбиения на страницы и  таблиц  задач,  режимы
работы и запуск сопроцессора. Системные регистры представляются в
главе 2.
    Работа процессора обычно состоит из операции  ввода  разнооб-
разных	данных и генерации выходных результатов. Многие типы дан-
ных 80386, такие как целые числа со знаком и без  знака,  битовые
данные	и  последовательности данных для эффективной работы аппа-
ратно поддерживаются. Например, битовый тип данных, это типы дан-
ных размером в бит или несколько бит.	Байт - это  восемь  битов
Следовательно, 8-ми разрядные целые числа со знаком или без знака
являются  байтовыми.  Слова  и	двойные слова также распознаются.
Слова - это 16-ти  разрядные  числа  со  знаком  или  без  знака.
Двойные слова - это 32-х разрядные числа со знаком или без знака.
Все  эти  величины,  байты,  слова  (2	байта) и двойные слова (4
байта), легко передаются между процессором и памятью, т.к. память
побайтно адресуемая, имея в виду, что любой определенный байт или
байты могут быть найдены в будущем.
    В каждом из этих типов данных, которые представлены  на  рис.
1.3,  бит 0 младший значимый бит (LSB), и бит с самым большим но-
мером, следовательно старший, значимый бит (MSB).
			      - 6 -
    Когда эти типы данных размещаются в регистре МП 80386, то ну-
левой бит регистра хранит LSB (младший значимый  разряд)  данного
типа  данных.  Когда  тип данных хранится в памяти, он имеет свой
адрес памяти, адрес используется для обращения к "байтовым"  дан-
ным в памяти.Когда многобайтный тип данных,такие как слово и двой
ное слово, хранится в памяти, то адресом по соглашению, всегда яв
ляется младший значимый байт. Когда "длинные" типы данных хранятс
в памяти, то адрес байта с наименьшим  номером	является  младшим
значимым  байтом данных, как иллюстрируется на рис. 1.4. Это сог-
лашение по хранению многобайтных типов данных, где  адрес  с  на-
именьшим  номером соответствует младшему значимому байту, называ-
ется "научным" порядком (Seientific ordering). Этот порядок имеет
последовательное распространение сигнала переноса,  например,  от
младшего байта к старшему байту.
					      7 	      0
					      ГДДДДДДДДДДДДДДДґ
					      іM	     Lі
					      іS   БАЙТ      Sі
					      іB	     Bі
					      АДДДДДДДДДДДДДДДЩ
			      15	      7 	      0
			      ГДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДґ
			      іM			     Lі
			      іS	  СЛОВО 	     Sі
			      іB			     Bі
			      АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
31	      23	      15	      7 	      0
ГДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДґ
іM							     Lі
іS	     ДВОЙНОЕ СЛОВО				     Sі
іB							     Bі
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
     Рис.1.3 Типы данных байт,слово и двойное слово МП 80386
		      ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
		      ібайтібайтібайтібайтібайтібайтібайтібайті
		      іn+6 іn+5 іn+4 іn+3 іn+2 іn+1 іn	 іn-1 і
		      і    і	і    іMSB і    і    іLSB і    і
		      АДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДЕДДДДЩ
				     ічДДДДДДДДДДДДДДДДДці
					двойное слово
	Рис.1.4 Пример хранения в памяти двойного слова.
    В МП 80386 адресация  данных или команд программы выполняется
при использовании любого из режимов адресации процессора для соз-
дания  эффективного адреса, т.е. адреса памяти, где хранятся тре-
буемые	данные или программа. Архитектура адресации 80386 высоко-
ортогональная, имеется в виду то, что любой режим адресации  дос-
тупен  любой команде обращения к памяти. Эффективность программи-
рования программ на 80386 улучшается по сравнению с 8086 и  80286
путем обеспечения нескольких новых режимов адресации. Эффективный
адрес  может быть вычислен не более чем из четырех отдельных ком-
понентов адреса, относительный адрес, значение базы, значение ин-
декса масштабируемого 1,2,4 или 8 и база сегмента. Рис.  1.5  ил-
люстрирует эти компоненты. Выполняя вычисление эффективного адре-
са,  80386  суммирует  все  требуемые компоненты для формирования
суммы, которая является эффективным адресом операнда.
			      - 7 -
    Режимом  адресации	80386  даются  имена,  такие  как  непос-
редственная адресация (использует только компонент относительного
адреса),  адресация  с	масштабируемым	индексом  (использует ин-
дексную компоненту и коэффициент масштабирования),  относительная
плюс  базовая  (использует базовую и относительную компоненту), и
так далее включая адрес базового сегмента,  который  всегда  при-
сутствует,  любая  комбинация из четырех компонентов адресации, с
или без масштабирования, может использоваться режимами	адресации
80386.
		 Конструкция кристалла МП 80386
		  ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
     80386,как 32-х разрядная машина, имеет возможность обрабаты-
вать  и  передавать одновременно 32-х разрядные данные. Его внут-
ренние регистры и информационный канал имеют ширину  в	32  бита.
Эффективный адрес также является 32-х разрядным, обеспечивая раз-
мер линейного адресного пространства 4 биллиона байт (4 Гбайта).
    Микропроцессор  состоит из 275 000 транзисторов, вытравленных
на одном кристалле кремния и  изготовленных  по  технологии  CMOS
(комплементарная структура металл оксид полупроводник) для сниже-
ния  мощности  потребления.  Кристал   помещается в корпусе с 132
ножками.  Главными  устройствами  кристалла  являются  устройства
предварительного  выбора команды, декодер команды, исполнительное
устройство и устройство разбиения  страницы. Преимуществом,  име-
ющихся	на  кристалле  составных  устройств является параллелизм,
т.е. увеличение производительности достигается,  когда	различные
устройства работают параллельно.
    Пока  одна	команда  выполняется, другие команды выбираются и
декодируются, вычисление адреса и трансляция страниц также выпол-
няются в кристаллле. Эти устройства работают с постоянной  часто-
той генератора входных сигналов, который заставляет процессор вы-
полнять  его  микрокоманды.  Тактовая частота для 80386 сейчас не
выше 20 МГц (предполагают, что скоро  частота  возрастет).  Таким
образом  80386	выполняет 20 миллионов микроциклов в секунду (4,4
MIPS). Благодаря высокой скорости его задающего генератора и  эф-
фективной  конструкции.  Эта  высокая скорость выполнения команды
является причиной, которая заставляет 80386 быстро решать большие
вычислительные задачи и обеспечивает мгновенный  ответ	во  время
интерактивного сеанса.
    Новое устройство разбиения на страницы, содержащее в себе КЭШ
для значений адресов трансляции, также размещается  на	кристале.
Устройство  разбиения на страницы осуществляет управление памятью
и обеспечивает возможность виртуальной памяти, позволяя  програм-
мам  использовать  во  много  раз  больше  памяти,  чем имеется в
действительности, т.е. физически, реализованной в системе на  чи-
пах  памяти.  Устройство  разбиения  на страницы включает КЭШ для
хранения 32-х недавно оттранслируемых значений;  это  значительно
ускоряет процесс общей трансляции. Это интегрированное устройство
разбиения на страницы исключает затраты на оборудование вне крис-
тала для обеспечения логики управления памятью.
    Высокая  степень тестируемости, создана на кристалле, включая
автотест, который может запустить пользователь при включении пита
ния. Автотест применяет регистры так же, как в логике  управления
применяют регулярные структуры. После завершения автотеста сигна-
туры теста могут считываться из регистров общего назначения (РОН)
для  проверки результатов автотеста. Наконец, обеспечиваются спе-
циальные системные регистры. Так что память в КЭШ устройстве раз-
биения на страницы может полностью проверяться для  подтверждения
ее функционирования.
    На	рис. 1.6. показана компоновка 80386. На рис. 1.7. показан
собранный кристалл с схемой, вставленной в центр, обратите внима-
ние на проводники по стронам микросхемы с  132	ножками,  которые
соединяют схему с платой при ее монтаже.
			      - 8 -
			       31	      15	     0
			       ГДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
       Базовый регистр:        і	    База	     і
			       АДДДДДДДДДДДДДДДДДВДДДДДДДДДДДЩ
	  31	       15	       0	 і
	  ЪДДДДДДДДДДДДВДДДДДДДДДДДДДДДї	 і
	  ізнако-      ізнак-	       і	 щ  Сложение по
Смещение: і расширение ірасшир.        ГДДДДДДДДц+	    32
	  АДДДДДДДДДДДДБДДДДДДДДДДДДДДДЩ	 і  модулю 2
	  31				0	 і
	  ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї	 і
Индексный і				і	 щ  Сложение по
регистр:  і	     Индекс		ГДДДВДДДц+	    32
	  АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ   ш	 і  модулю 2
					    і	 і
			ЪДДДДДДДДДДДДДДДї   і	 і
			і масштабный	і   і	 і
	  Масштаб:	і множитель	ГДДДЩ	 і
			АДДДДДДДДДДДДДДДЩ	 і
			 1, 2, 4, или 8 	 і
						 і ЭФФЕКТИВНЫЙ
						 і    АДРЕС
						/
					      /
					    /
					  /
					/проверка     наруше-
				      /границ сег-    ние
				    /мента и прав     ДДДДДДДц
				   доступа	    /  исклю-
						   / чение
						  /  12 или 13
						 / без нарушений
------------------------------------------------ і
	   31			       0	 і
Адрес базы ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДї	 і
	   і			       і	 щ  Сложение по
сегмента:  і	  База сегмента        ГДДДДДДДДц+	    32
	   і			       і	    модулю 2
	   АДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ	 і
						 і
						 і  ЛИНЕЙНЫЙ
						 і  АДРЕС =
						 і
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
						 і
				31	  12 11  і	     0
				ЪДДДДДДДДДДДД----------------|
				ітрансляция і	 і  смещение |
				і страниц   і	 і в странице|
				АДДДДДДДДДДДБД---і-----------
						 і ФИЗИЧЕСКИЙ
						 і АДРЕС
						 і	  шаг 3
						 і
			       31	      15 щ	     0
			       ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
Физический адрес:	       і      Физический адрес	     і
			       АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
  Рис.1.5	 Представление формирования адреса и трансляция
		     разбиения на страницы.
			      - 9 -
			     ГЛАВА 2
	      Данные, наборы регистров и адресация
	       ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Данная глава включает  описание  типов  данных,  наборов  ре-
гистров и режимов адресации 80386.
		    Размеры и типы данных
		    ДДДДДДДДДДДДДДДДДДДДД
    80386  работает с различными размерами данных, такими как би-
ты, байты, слова и двойные слова. Как было  указано  в	главе  1,
байт  состоит  из  8 бит, слово из 16 бит и двойное слово из 32-х
бит.
    Типы данных, поддерживаемые 80386 являются "битовыми"; данные
целого типа со знаком или без знака, из 8, 16 или 32 бит;  упако-
ванные или неупакованные двойные числа, которые кодируют десятич-
ные  данные, и последовательность целочисленных данных, в которой
каждый элемент состоит из 8, 16 или 32	битов.	Указатели  адреса
завершения,  состоящих из селектора и смещения, также распознает-
ся. Эти типы данных иллюстрируются на рис.2.1.
    Диапазон целочисленных типов данных со  знаком  и  без  знака
представлен на рис. 2.2.
	7		0	  7		   0
	ГДДДДДДДДДДДДДДДґ	  ГДДДДДДДДДДДДДДДДґ
	і7 6 5 4 3 2 1 0і	  і байт       базаі битовые
	АДДДДДДДДДДДДДДДЩ	  АДДДДДДДДДДДДДДДДЩ данные
	       ш				 і
	       і				 і
	       АДДДДДДДДДДсмещениеДДДДДДДДДДДДДДДЩ
				  7		   0
				  ГДДДДДДДДДДДДДДДДґ целочисленные
				  іMSB	байт	LSBі данные размером
				  АДДДДДДДДДДДДДДДДЩ в байт
		   7		  0 7		   0
		   ГДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДґ целочисленные
		   іMSB 	слово		LSBі данные размером
		   АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ в слово
   7	      0 7	  0 7	      0 7	   0
   ГДДДДДДДДДДДЕДДДДДДДДДДДЕДДДДДДДДДДДЕДДДДДДДДДДДґ целочисленны
   іMSB 	   двойное слово		LSBі данные размером
   АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ в двойное сл
ово
     Упакованный двоичный код,кодируемый десятичными данными
				  7		   0
				  ГДДДДДДДДДДДДДДДДґ
				  іMSD	   і	LSDі
				  АДДДДДДДДДДДДДДДДЩ
    Неупакованный двоичный код,кодируемый десятичными данными
				  7		   0
				  ГДДДДДДДДДДДДДДДДґ
				  і * іMSDі * іLSD і
				  АДДДДДДДДДДДДДДДДЩ
			     - 10 -
	       Байтовая последовательность данных
		       7       0 7	0 7	   0
		       ГДДДДДДДДЕДДДДДДДДЕДДДДДДДДДґ
		       ібайт n+2ібайт n+1ібайт n   і
		       АДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
	   (последовательность данных размером в слово
	    или в двойное слово подобно последовательности
	    данных размером в байт)
	  Адрес завершения (16-ти разрядная адресация)
 15			 0 15			   0
 ГДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДґ
 і	  Селектор	  і16-ти разрядное смещениеі
 АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
	  Адрес завершения (32-ух разрядная адресация)
 15			 0 31			   0
 ГДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДґ
 і	  Селектор	  і32-ух разрядное смещениеі
 АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
		  Рис.2.1 Типы данных МП 80386
	 Поле размера операнда и префикс размера операнда
	 ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Размер  операнда для каждой команды кодируется в команде либо
неявно в коде операции команды, либо явно в поле внутри команды и
необязательным префиксом размера операнда, размещаемым до  коман-
ды.
    Когда размер операнда относительно кодируется, то размер опе-
ранда определяется полем "W" команды, режимом работы процессора и
байтом префикса размера операнда, который и должен предшествовать
коду  команды.	Поле "W" - это однобитовое поле, которое выбирает
либо размер операнда - "байт", либо размер "большой операнд". По-
ле W, показанное на рис. 2.3, содержит	каждая	команда,  которая
явно  кодирует	модификатор размера операнда. Если W=0, то размер
операнда выбирается равным байту. Если W=1, то это  указывает  на
"большой  операнд", который должен быть либо словом, либо двойным
словом,обычно в зависимости от	режима	работы.  Размер  большого
операнда  равен  обычно 16-ти разрядному слову в любом 16-ти раз-
рядном режиме (Действительном или виртуальном режиме  8086)  или,
если  присутствует  16-ти  разрядный кодовый сегмент в защищенном
режиме. Тем не менее большой  размер  обычно  соответствует  32-х
разрядному  двойному  слову, если присутствует 32-х разрядный код
сегмента в защищенном режиме.
		       7		   *   0
		       ГДДДВДДДДДДДДДДДВДДДВДДДґ
		       і   і	       і   і W і
		       АДДДБДДДДДДДДДДДБДДДБДДДЩ
	       Рис. 2.3. Поле-W в коде операций команды
    Байт  префикса  размера  операнда, иллюстрируемый на рис. 2.4
также помогает определить размер большого  операнда.  Префикс  не
влияет	на  размер  операнда  равный байту. Байт префикса размера
операнда, если он  присутствует,  уставливает  значение  большого
			     - 11 -
операнда,  нормально  определяемое полем-W. Если обычное значение
большого операнда будет  слово,  то  двойное  слово  определяется
байтом	префикса  размера операнда . Соответственно, если двойное
слово будет обычно определяться, тогда слово определяется  байтом
префикса размера операнда. Префикс размера операнда влияет только
на команду, которой он предшествует; префикс может предшествовать
каждой команде, где его присутствие требуется.
		      7 		0
		      ГДДДДДДДДДДДДДДДДДґ
		      і 0 1 1 0 0 1 1 0 і
		      АДДДДДДДДДДДДДДДДДЩ
		Рис. 2.4. Префикс размера операнда
    Заметим,  что  поле-"W"  и префикс размера операнда позволяет
любому размеру операнда быть выбранным в любом	режиме	работы	в
табл. 2.1. представлены условия для выбора размера операнда.
						      Таблица 2.1
		     Выбор размера операнда
ДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДВДДДДДДДДДД
Поле Wі 	    Режим работы	     іПрефикс іВыбранный і
      і 				     іразмера і размер	 і
      і 				     іоперандаіоперанда  і
ДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДЕДДДДДДДДДД
  0   іЛюбой режим			     іБезраз- іБайт	 і
      і 				     іличен   і 	 і
      і 				     і	      і 	 і
  1   іЛюбой 16-ти разрядный режим (дейст-   іНе при- іСлово	 і
      івительный режим, виртуальный режим    ісутст-  і 	 і
      і8086 или защищенный режим, поддер-    івует    і 	 і
      іживающий 16-ти разрядным кодом сег-   і	      і 	 і
      імента				     і	      і 	 і
      і 				     і	      і 	 і
  1   іЛюбой 16-ти разрядный режим (дейст-   іПрисут- іДвойное	 і
      івительный режим, виртуальный режим,   іствует  іслово	 і
      івиртуальный режим 8086, или защи-     і	      і 	 і
      іщенный, поддерживающий 16-ти раз-     і	      і 	 і
      ірядным кодом сегмента		     і	      і 	 і
      і 				     і	      і 	 і
  1   іЗащищенный режим, поддерживаемый      іНе при- іДвойное	 і
      і32-х битовым кодом сегмента	     ісутст-  іслово	 і
      і 				     івует    і 	 і
      і 				     і	      і 	 і
  1   іЗащищенный режим, поддерживаемый      іПрисут- іСлово	 і
      і32-х битовым кодом сегмента	     іствует  і 	 і
ДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДБДДДДДДДДДД
			     - 12 -
			 РЕГИСТРЫ 80386
			  ДДДДДДДДДДДДДД
    80386  имеет 31 программируемых регистров в следующих катего-
риях:
				   Дї
				    і
    Регистры общего назначения	- 8 і
    Счетчик команд		- 1 }	   Регистры
    Регистр флага		- 1 і	 пользователя
    Регистры сегмента		- 6 і
				   ДЩ
			 ----------
			 всего 16
				   Дї
    Регистры управления        - 3  і
    Регистры отладки	       - 6  і
				    і	   Регистры
    Регистры проверки разбие-	    }	   системы
    ния на страницы	       - 2  і
				    і
    Регистры защищенного	    і
    режима		       - 4  і
				   ДЩ
			 ---------
			 всего	15
    Обычный программист (пользователь) непосредственно использует
регистры общего назначения. Регистры управления, отладки, провер-
ки разбиения на страницы и защищенного режима являются	все  сис-
темными регистрами,используемые операционной системой для влияния
на глобальные аспекты системы. Хотя программа обслуживания отлад-
чика может также использовать регистры отладки для своих  функций
прерывания.
    Регистры общего назначения, счетчик команд и регистр флага
    ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Регистры  общего назначения, счетчик команд и регистр флага -
32-х разрядные регистры, из которых 16 младших разрядов использу-
ются в 16-ти разрядных режимах работы. Они все принадлежат к  на-
бору  регистров пользователя, кратко описанныхх в табл. 2.2. 32-х
разрядный вариант этих регистров  представляется  как  расширение
16-ти  разрядных регистров. Например, 32-х разрядный, счетчик ко-
мандж называется EIP (Расширенный счетчик команд), в то время как
младшие 16 разрядов EIP называется просто  IP  (счетчик  команд).
32-х разрядные регистры, включая их 16-ти и 8 разрядные поднаборы
представлены на рис. 2.5.
    Каждый  32-х разрядный регистр общего назначения предназначен
для хранения адресов и данных. Операнды размером двойного  слова,
слова, байта и бит могут храниться в этих регистрах, как об`ясня-
лось в главе 2.
    Счетчик команд EIP, имеет 32 разряда, младшие -  16  разрядов
являются счетчиком команд (IP) в 16-ти разрядных режимах. Счетчик
команд	указывает на следующую команду, которая будет выполняться
в пределах текущего сегмента программы. Операциями над EIP  явля-
ются  двухсловные операции, а операциями над IP являются операции
со словами.
    Регистры флага EFLAG (Расширенный  флаг)  имеет  32  разряда,
младшие  разряды составляют регистр  флага (FLAG) в 16-ти разряд-
ных режимах, EFLAG и FLAG содержат  биты  кода-условия,  и  также
несколько  битов управления, как представлено в табл. 2.3. Не все
32 бита EFLAG определены; неопределенные биты считываются как ло-
гическое "0" и игнорируются при записи. Операциями над EFLAG  яв-
			     - 13 -
ляются	операции с двойными словами; операциями над FLAG являются
операции со словами (Исключение: команды LAHF и SAHF загружают	и
хранят	самый младший байт FLAG), без сокращения описание EFLAG и
всех его полей находится в приложении А.
						      Таблица 2.2
	       Регистры пользователя 80386 и функции
-----------------------------------------------------------------
Регистр  |		  |
системы  |	Имя	  |		 Функция
80386	 |		  |
----------------------------------------------------------------
Регистры   8: EAX,EBX,ECX,  Используются для хранения общий ад-
	      EDX,ESI,EDI,  рес или данных
	      EBP,ESP
Счетчик    1: EIP	    EIP указывает на следующую выполня-
команд				емую команду
Регистр    1: EFLAG	    EFLAG содержит  8  полей  состояния
флага				  последней  выполненной коман-
				  ды и	5 полей управления, ко-
				  торые   разрешают  прерывание
				  или  управляют другими харак-
				  теристиками
Регистры   6: CS,SS,DS,     CS определяет текущий  сегмент  для
сегмента      ES,FS,GS	       программы.
			    SS определяет текущий  сегмент  для
			       доступа к стеку, такой  как  POP
			       и PUSH
			    DS определяет текущий сегмент  для
			       большинства операций с данными.
			    ES,FS и GS определяют дополнитель-
				       ные  сегменты  данных,
				       для  работы  с данными
-----------------------------------------------------------------
							Табл. 2.3
		 Содержание регистров EFLAG и FLAG
		   ічДДДДДДДДДДДДДДДFLAGДДДДДДДДДДДДДДДДДДДДДДДДці
		   і						 і
31 30...19 18 17 16і15 14 12-1311 10  9  8  7  6  5  4	3  2 1	0і
ГДДЕДЕ..ЕДЕДДЕДДЕДДЕДДЕДДЕДДДДЕДДЕДДЕДДЕДДЕДДЕДДЕДДЕДДЕДДЕДДЕДЕДД
і 0і0і	і0і 0іVMіRFі 0іNTіIOPLіOFіDFіIFіTFіSFіZFі 0іAFі 0іPFі1іCPі
ЕДДДД...ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ічДДДДДДДДДДДДДДДДДДДДДДДДДДДEFLAGДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДц
			     - 14 -
-----------------------------------------------------------------
  N   | 				 |Присутствие|Присутствие
байта | 				 |  в FLAG   | только в
 в    | 	 Поля состояния 	 |	     |EFLAG (но-
EFLAG | 				 |	     |вые поля в
(FLAG)| 				 |	     |	80386
-----------------------------------------------------------------
 7     SF   (знак)			      +
 2     PF   (паритет)			      +
 11    OF   (переполнения)		      +
 6     ZF   (результат операции равен 0)      +
 0     CF   (перенос)			      +
 4     AF   (добавочный перенос 	      +
	     Auxiliary Carry)
12-13 IOPL  (уровень приоритета 1/0)	      +
 14   NT   (вложенная задача Nested Task)     +
		Поля управления
 8   TF   (флаг прерывания Trap Flag)	      +
 9   IF   (разрешеие прерывания)	      +
	  (Interrupt Enable)
10   DF   (флаг направления Deraction Flag    +
16   RF   (флаг продолжения работы после      + 	   +
	   останова)
17   VM   (виртуальный режим 8086)	      + 	   +
-----------------------------------------------------------------
    Регистры общего назначения,используемые как регистры
    размером в байт,слово,двойное слово.
  31	     23 	15	   7	      0
  ЕДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДЕ
  і	    ЕАХ 	    АН	  АХ   АL     і
  ЕДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДЕ
  і	    ЕВХ 	    ВН	       ВL     і
  ЕДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДЕ
  і	    ЕСХ 	    СН	       СL     і
  ЕДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДЕ
  і	    ЕDХ 	    DН	       DL     і
  ЕДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДЕ
  і	    ЕSI 		  SI	      і
  ЕДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДЕ
  і	    ЕDI 		  DI	      і
  ЕДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДЕ
  і	    ЕВР 		  BP	      і
  ЕДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДЕ
  і	    ЕSР 		  SP	      і
  АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
    Счетчик команд,используемый как регистр размером в
    слово или двойное слово.
  31			15		      0
  ЕДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДЕ
  і	    EIP 		  IP	      і
  АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
			     - 15 -
   Регистр флага,используемый как 16-ти или 32-ух
   разрядный регистр.
  31			15		      0
  ЕДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДЕ
  і	    EFLAG		  FLAG	      і
  АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
   Рис.2.5 Регистры общего назначения,счетчик команд и регистр
			   флага 80386
			Регистры сегмента
			 ДДДДДДДДДДДДДДДДД
    Как упоминалось, сегмент это непрерывный линейный блок адрес-
ного  пространства  программиста.  32-х  разрядный  сегмент может
иметь до 4 биллионов байт (4 Гбайта); 16-ти разрядный сегмент мо-
жет иметь до 64 тысячи байт (64 Кбайта). Система 80386 может  со-
держать больше тысячи сегментов, если требуется. Шесть 16-ти раз-
рядных регистров сегмента, поэтому служат для определения доступ-
ных  в данный момент сегментов памяти. Сегмент для кода программы
должен быть определен в регистре "CS", сегмент стека  должен быть
определен в регистре "SS"; и сегмент данных должен быть определен
в регистре DS. Другие сегменты данных могут быть определены в ре-
гистрах "ES", "FS" и GS, если требуется. (рис.2.6)
    Операциями,  включающими  регистры сегмента являются операции
со словами, а слово, записанное в  регистр  сегмента,  называется
селектором. Селектор определяет или выбирает один сегмент из всех
возможных  сегментов.  Например, значение селектора, записанное в
регистр CS определяет отдельный  сегмент,  как
сегмент содержащий программу, которая будет выбираться. Программа
выбирается из этого сегмента до тех пор, пока код сегмента не из-
менится,  т.е. пока не будет записан новый селектор в регистр CS.
Новое значение селектора может быть записано в любой регистр сег-
мента, как только пожелает программист.
    Хотя селекторы всегда служат для определения текущего сегмен-
та,но форматы селектора немного различаются в действительном  ре-
жиме  и  защищенном режиме. На рис.2-11,2-12 представлены форматы
селекторов.
			Системные регистры
			ДДДДДДДДДДДДДДДДДД
    Регистры 80386 используемые главным образом системными  прог-
раммистами  классифицируются как системные регистры. Эти регистры
- для управления, отладки, контроля разбиения на страницы и защи-
щенного режима, обеспечивают все необходимые для установки  чисто
системных  характеристик  80386. Их функции кратко представлены в
табл. 2.4, а подробно об`ясняются в главах 8-17.  Рисунки  2.7	и
2.8  иллюстрируют  эти	регистры, большинство из которых являются
32-х разрядными.
			15		      0
			ЕДДДДДДДДДДДДДДДДДДДДДЕ
Сегмент кода программы	і	  CS	      і
			ЕДДДДДДДДДДДДДДДДДДДДДЕ
Сегмент стека		і	  SS	      і
			ЕДДДДДДДДДДДДДДДДДДДДДЕ  РЕГИСТРЫ
Сегмент данных		і	  DS	      і
		       ДЕДДДДДДДДДДДДДДДДДДДДДЕ  СЕГМЕНТА
Дополнительные	       ші	  ES	      і
регистры сегмента      іЕДДДДДДДДДДДДДДДДДДДДДЕ
    данных	       іі	  FS	      і
		       іЕДДДДДДДДДДДДДДДДДДДДДЕ
		       щі	  GS	      і
		       ДБДДДДДДДДДДДДДДДДДДДДДЩ
	     Рис.2.6 Сегментные регисторы МП 80386.
			     - 16 -
    Операциями над 32-х разрядными регистрами управления, отладки
и контроля разбиения на страницы  являются  операции  с  двойными
словами.  Младшие  16  разрядов   регистра управления (CRO) могут
быть также доступны как 16-ти разрядное  слово	состояния  машины
(MSW)  для  операций со словами. Операциями с 32-х разрядными ре-
гистрами защищенного режима  IDTR  и  GDTR  являются  операции	с
двойными словами, а с 16-ти разрядными регистрами защищенного ре-
жима LDTR и TR - операции над словами.
    Системные  регистры  имеют	несколько  заслуживающих внимания
особенностей. Например, развитие этих регистров в  микропроцессо-
рах фирмы INTEL от поколения к поколению представляет большой ин-
терес:	МП  8086  не  имеет системных регистров, а МП 80286 имеет
только MSW (регистр слово состояния машины, младшие  16  разрядов
регистра  CRO  МП  80386) и регистры защищенного режима. Следова-
тельно, большинство системных регистров  80386	являются  новыми,
которые  добавляются для поддержки функций отладки и разбиения на
страницы. Шесть регистров отладки поддерживают новое средство от-
ладки кристалла. Регистры CR2, CR3 и регистры контроля	разбиения
на страницы поддерживают страничное разбиение.
    Другие интересные, заслуживающие внимания системные регистры:
    -  некоторые  регистры  отладки используются ICE-386, который
является мощным встроенным эмулятором для МП INTEL;
    - регистры проверки разбиения на страницы позволяют проверять
весь КЭШ трансляции разбиения на страницы при помощи программы на
языке ассемблера;
    - в системах виртуальной памяти, регистр базы таблицы страни-
цы (CR2) имеет только регистр, содержащий физический адрес;
    - в защищенном режиме, в системные регистры могут  записывать
только	команды  с  нулевым уровнем, самый привилегированный уро-
вень.
		 РЕГИСТРЫ УПРАВЛЕНИЯ
		 ДДДДДДДДДДДДДДДДДДД
31		23		15		7		0
ГДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДґ
іРі і і і і і і   і і і і і і і   і і і і і і і   і і іЕіТіЕіМіРі
і  0і0і0і0і0і0і0і0і0і0і0і0і0і0і0і0і0і0і0і0і0і0і0і0і0і0і і і і	і С
R0
іGі і і і і і і і і і і і і і і і і і і і і і і і і і іТіSіМіРіЕі
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
31		23		15		7		0
ГДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДґ
і								і
і      РЕГИСТР ЛИНЕЙНОГО АДРЕСА ОШИБКИ СТРАНИЦЫ 		і СR2
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
31		23		15		7		0
ГДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДґ
і				    і і і і і і   і і і і і і і і
і   РЕГИСТР БАЗЫ КАТАЛОГА СТРАНИЦ     і і0і0і0і0і0і0і0і0і0і0і0і0і
 СR3
і				    і і і і і і і і і і і і і і і
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
			     - 17 -
						      Таблица 2.4
		Системные регистры 80386 и функции
-----------------------------------------------------------------
Системный  |		  |
 регистр   |	 Имя	  |		Функция
 80386	   |		  |
-----------------------------------------------------------------
Регистры    3: CRO,CR2,CR3   CRO разрешает защищенный режим, раз-
управления			биение на страницы и запускает
				сопроцессор
			     CR2 указывает последний виртуальный
				адрес, который вызвал ошибку
				страничного разбиения
			     CR3 сообщает 80386, где находится
				таблица страничного разбиения
				для трансляции виртуального
				адреса
Регистры    6: DRO,DR1,DR2,  DRO-DR3 определяют четыре незави-
отладки        DR3,DR6,DR7	     симых точки останова
			     0,1,2 и 3 точки останова могут
			     использоваться программами об-
			     служивания отладчика
			     DR6 указывает последний останов,
				который встречается
			     DR7 управляет условиями, необходимыми
				для каждой точки останова, кото-
				рая встречается
Регистры    2:TR6, TR7	     TR6 определяет виртуальный адрес, ис-
контроля			пользуемый для проверки устройст-
разбиения			ва разбиения на страницы
страницы
			     TR7 определяет физический адрес, ис-
				пользуемый при проверке устрой-
				ства разбиения на страницы
Регистры    4:IDTR, GDTR,    IDTR определяет базовый адрес таб-
защищен-    LDTR, TR		 лицы векторов прерывания
ного
режима
				 GDTR определяет базовый адрес таб-
				 лицы, содержащей глобальные
				 дескрипторы
			     LDTR определяет базовый адрес таб-
				 лицы, содержащий локальные
				 дескрипторы
			     TR   определяет базовый адрес сег-
				 мента, содержащего информацию
				 о состоянии для текущей за-
				 дачи
-----------------------------------------------------------------
			     - 18 -
		       ОТЛАДОЧНЫЕ РЕГИСТРЫ
			___________________
31		23		15		7		0
ГДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДґ
і і і і і					      і і і і і і
і	 РЕГИСТР ЛИНЕЙНОГО АДРЕСА ТОЧКИ ОСТАНОВА -0-	і і і і і DR0
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
31		23		15		7		0
ГДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДґ
і і і і і					      і і і і і і
і і і і іРЕГИСТР ЛИНЕЙНОГО АДРЕСА ТОЧКИ ОСТАНОВА -1-  і і і і і і
 DR1
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
31		23		15		7		0
ГДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДґ
і і і і і					      і і і і і і
і і і і іРЕГИСТР ЛИНЕЙНОГО АДРЕСА ТОЧКИ ОСТАНОВА -2-  і і і і і і
 DR2
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
31		23		15		7		0
ГДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДґ
і і і і і					      і і і і і і
і і і і іРЕГИСТР ЛИНЕЙНОГО АДРЕСА ТОЧКИ ОСТАНОВА -3-  і і і і і і
 DR3
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
31		23		15		7		0
ГДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДґ
і і і і і і і і і і і і і і і і  ВіВіВі і і і і   і і і іВіВіВіВі
і0і0і0і0і0і0і0і0і0і0і0і0і0і0і0і0і і і і0і0і0і0і0і0і0і0і0і і і і і
 DR6
і і і і і і і і і і і і і і і і іТіSіDі і і і і і і і і і3і2і1і0і
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
31		23		15		7		0
ГДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДґ
іLENіRіWіLENіRіWіLENіRіWіLENіRіW  і і і і і іGіL GіLіGіLіGіLіGіLі
і   і і і   і і і   і і і   і і і0і0і0і0і0і0і і і і і і і і і і і
 DR7
і 3 і3і3і 2 і2і2і 1 і1і1і 0 і0і0і і і і і і іEіEі3і3і2і2і1і1і0і0і
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
 Рис. 2-7 Системные регистры часть 1:регистры управления и отладк
и.
31		23		15		7		0
ГДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДґ
і і і і і			      і іVіDіDіU UіWіWі і і і і і
і і і і і      ЛИНЕЙНЫЙ АДРЕС		і і і і і і і і0і0і0і0іСі ТR6
і і і і і			      і і і і#і і#і і/і і і і і і
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
31		23		15		7		0
ГДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДґ
і і і і і			      і і і і і   і і іPі   і і і
і і і і і      ФИЗИЧЕСКИЙ АДРЕС       і і0і0і0і0і0і0і0і іREPі0і0і
 ТR7
і і і і і			      і і і і і і і і іLі   і і і
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
31		23		15		7		0
ГДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДґ
і і і і і					  і і і і і і і і
і і і і і  XDY ЛИНЕЙНЫЙ АДРЕСНЫЙ РЕГИСТР	і і і і і і і і і IDTR
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
			     - 19 -
31		23		15		7		0
ГДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДґ
і і і і і					  і і і і і і і і
і і і і і  GDY ЛИНЕЙНЫЙ АДРЕСНЫЙ РЕГИСТР	і і і і і і і і і GDTR
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
				15		7		0
				ГДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДґ
				і і і			    і і і
				і і і LDY СЕЛЕКТОР	    і і і LDTR
				АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
				15		7		0
				ГДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДґ
				і і і			    і і і
				і і і TSS СЕЛЕКТОР	    і і і TR
				АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
 Рис. 2.8 Системные регистры часть 2:тестовые и PROTECTED-MODE.
		       Организация данных
			ДДДДДДДДДДДДДДДДДД
    Данные шине байт, слово или двойное слово могут быть размеще-
ны  в  каждом из регистров общего назначения. Каждый из регистров
общего назначения имеет 32 разряда, физически они еще  могут  ис-
пользоваться  как наборы 16-ти разрядных регистров (совместимость
с 8086). Суперкомплект 32-х разрядных регистров полностью  содер-
жит  16-ти  разрядные  регистры.  Эти  регистры общего назначения
представлены на рис. 2.9 и 2.10, где, для ясности,  регистры  по-
казаны	как  16-ти разрядный комплект, а затем как 32-х разрядных
комплектов.
    Обратите внимание также на 8-ми разрядные  регистры  AH,  AL,
BH,  WL,  CH,  CL, DH и DL, которые всегда доступны для операндов
размером в байт.
    Регистры общего назначения обычно используются как 16-ти раз-
рядный набор регистров при работе в реальном или виртуальном  ре-
жиме 8086, или при наличии 16-ти разрядного кода сегмента в защи-
щенном	режиме.  Однако,  регистры  общего  назначения обычно ис-
пользуются как 32-х разрядный набор регистров  при  наличии  32-х
разрядного кода сегмента в защищенном режиме.
    Префикс  размера  операнда	влияет на размер набора регистров
общего назначения, так как именно префикс определяет размер  опе-
ранда,	который задает размер набора регистров от 16 до 32-х раз-
рядов, или наоборот. Поэтому размеры операндов и регистров всегда
совпадают. Двухсловные операнды размещаются в 32-х разрядных  ре-
гистрах,  однословные -  в  16-ти  разрядных, байтовые - операнды
всегда размещаются в 8-ми разрядных регистрах. Размер набора  ре-
гистров может быть изменен в любое время при помощи префикса раз-
мера операнда. После выбора размера набора регистров очистка дан-
ных,  хранящихся  в  регистрах	не  происходит, это позволяет ис-
пользовать младшие разряды двухсловного операнда как  однословный
операнд и так далее.
    Об`единение двух регистров используется для нескольких специ-
ализированных операций. Команды SHLD (Двойной сдвиг влево) и SHRD
(Двойной  сдвиг вправо) позволяют сдвоенному регистру общего наз-
начения производит сдвиг 64 разрядных операндов на  один  разряд,
передавать  блок бит, вставлять бит, удалять бит. Команды умноже-
ния и деления с двойной точностью используют  сдвоенные  регистры
EDX и EAH для хранения 64 разрядных числовых операндов.
			     - 20 -
				   7	      0
  ГДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДґ
  і			    АН	  АХ   АL     і
  ГДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДґ
  і			    ВН	  BX   ВL     і
  ГДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДґ
  і			    СН	  CX   СL     і
  ГДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДґ
  і			    DН	  DX   DL     і
  ГДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДґ
  і				  SI	      і
  ГДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДґ
  і				  DI	      і
  ГДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДґ
  і				  BP	      і
  ГДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДґ
  і				  SP	      і
  АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
    Рис.2.9 16-ти разрядный набор регистров общего назначения
	    Организация данных в регистрах сегмента
	    ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Все  операции  в  регистрах  сегмента являются операциями над
словами. Операнд, находящийся в регистре сегмента называется  се-
лектором, а 16-ти разрядное значение селектора определяет опреде-
ленный сегмент.
  31	     23 	15	   7	      0
  ГДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДґ
  і	    ЕАХ 	    АН	       АL     і
  ГДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДґ
  і	    ЕВХ 	    ВН	       ВL     і
  ГДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДґ
  і	    ЕСХ 	    СН	       СL     і
  ГДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДЕДДДДДДДДДДґ
  і	    ЕDХ 	    DН	       DL     і
  ГДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДґ
  і	    ЕSI 			      і
  ГДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДґ
  і	    ЕDI 			      і
  ГДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДґ
  і	    ЕВР 			      і
  ГДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДґ
  і	    ЕSР 			      і
  АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
   Рис.2.10 32-ух разрядный набор регистров общего назначения
    Форматы  селектора	в  реальном режиме или виртуальном режиме
8086 является просто 16-ти разрядный индекс,  точно  определяющий
сегмент. Селекторы защищенного режима имеют несколько модифициру-
емый формат, т.к. три младших по порядку разряда селектора служат
для  специальных  целей. Селектор защищенного режима включает 2-х
битовое поле привилегий (RPL) для поддержки четырех уровневой мо-
дели защиты защищенного режима. Он также включает бит индификато-
ра таблицы (таб.1) для указания текущей таблицы дескриптора в за-
щищенном режиме. Более подробная информция о селекторах  защищен-
ного режима находится в главе 7.
			     - 21 -
		  15 14 13 12 11 10 9  8  7  6	5  4  3  2  1  0
		  ГДДЕДДЕДДЕДДЕДДЕДДЕДДЕДДЕДДЕДДЕДДЕДДЕДДЕДДЕДДґ
		  і  16-ти разрядный индекс  і	і  і  і  і  і  і
		  АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
	   Рис.2.11 Формат селектора в реальном режиме
		  15 14 13 12 11 10 9  8  7  6	5  4  3  2  1  0
		  ГДДЕДДЕДДЕДДЕДДЕДДЕДДЕДДЕДДЕДДЕДДЕДДЕДДЕДДЕДДґ
		  і  14-ти разрядный индекс  і	і  і  іTIі RPL і
		  АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
	  Рис.2.12 Формат селектора в защищенном режиме
	    Организация данных в системных регистрах
	     ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Запись  или  чтение в (из) системных регистров осуществляется
при помощи двухсловных операций,  хотя	данные	в  системных  ре-
гистрах часто организуются в виде различных небольших полей. Дан-
ные каждого поля независят от данных других полей,  исключая нес-
колько	ситуаций, в которых несколько полей работают вместе в ко-
ординальной ситуации. Например, четыре поля в регистре управления
с номером (CR0) вместе управляют цифровым кристаллом сопроцессора
80387. Определенные поля регистров контроля страничного разбиения
также действуют как согласованные части.
    Неопределенные поля в системных регистрах, обозначенные нуля-
ми  на	рис. 2.7 и 2.8 не содержат информации. Для исключения не-
совместимости программного обеспечения с  будущими  процессорами,
программист  должен не зависеть от состояния неопределенных полей
при проверке определенных полей. Поэтому рекомендуют, чтобы прог-
раммист применял логические команды, такие как AND, для  маскиро-
вания неопределенных полей до проверки регистра. Так маски, соот-
ветствующие  точно  позиции  неопределенных битов, представлены в
таблице 2.6 для удобства.
		  Организация данных в памяти
		  ДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Память является побайтно адресуемой. Данные в памяти  органи-
зуются	так, что самые младшие адреса соответствуют самым младшим
по порядку байтам любого операнда. Когда операнд  больший  чем	в
один  байт  размещается  в памяти, то его адрес, N, соответствует
самому младшему присутствующему байту  и,  следовательно,  самому
младшему  значимому байту операнда. 80386 не требует выравнивания
адреса операнда к границе адресов слов или двойных слов. Для луч-
шего исполнения, адрес слова должен быть выравнен к границе слова
(адрес кратный 2), а адрес двойного слова -  к	границе  двойного
слова (адрес кратный 4). Наиболее эффективна передача, когда дан-
ные выравнены к некоторой границе байта, соответствующего размеру
операнда. Команды не требуют выравнивания данных, но наиболее эф-
фективна  операция, которая имеет место, когда адресанты информа-
ции команд передачи управления имеют двухсловные  границы,  из-за
этого максимального случая непосредственного выбора полной следу-
ющей  команды.	Типы данных, поддержанные в памяти 80386 являются
битовыми; целочисленные данные 8, 16 или 32-х  разрядные;  упако-
ванные	или  не упакованные двоичные числа, кодируемые десятичные
данные; последовательность целочисленных данных, состоящих из  8,
16  и  32-х  разрядных	элементов; и указатель адреса завершения,
состоящих из селектора и смещения. Эти	операнды  организуются	в
памяти как показано на рис. 2.13.
			     - 22 -
						      Таблица 2.6
      Значения для маски неопределенных битов в регистрах
    -------------------------------------------------------
		       системы и EFLAG
		     -------------------
ДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДВДДДДДДДДДД
Регистр і	  Значение  маски	    іН-код    іКоментарииі
ДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДЕДДДДДДДДДД
		     Двоичное					 і
CRO	10000000 00000000 00000000 00011111  8000 00IF		 і
CR2		   Не требуется 		       Все биты  і
						       определеныі
CR3	11111111 11111111 11110000 00000000  FFFF F000		 і
DR0-DR3 	   Не требуется 		       Все биты  і
						       определеныі
DR6	00000000 00000000 11100000 00001111  0000 E00F		 і
DR7	11111111 11111111 00100011 11111111  FFFF 23FF		 і
TR6	11111111 11111111 11111111 111000011 FFFF FFE1		 і
TR7	11111111 11111111 11110000 00011100  FFFF F0IC		 і
IDTR						       Все биты  і
GDTR		   Не требуется 		       определеныі
LDTR								 і
EFLAG	00000000 00000011 01111111 11010101  0003 7FD5		 і
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
		     1: бит определяется			 і
		     0: бит неопределяется			 і
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
	Битовые данные
7	0 7		0 7	 0 7	 0 7	  0 7	   0 7	     0
ГДДДДДДДДЕДДДДДДДДДДДДДДДЕДДДДДДДДЕДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДД
ДДДДґ
ібайт n+3і7 6 5 4 3 2 1 0ібайт n+1ібайт n ібайт n-1ібайт n-2ібайт
 n-3і
АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДДЩ
		ш		     і
		АДДДДсмещениеДДДДДДДДЩ адрес базы:байт n
	Целочисленные данные размером в байт
	7      0 7	0 7	 0 7	 0 7	  0 7	   0 7	     0
       ГДДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДД
ДДДДґ
       ібайт n+3ібайт n+2ібайт n+1іMSB LSBібайт n-1ібайт n-2ібайт
 n-3і
       АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДДЩ
				       адрес базы:байт n
       Целочисленные данные размером в слово
		7	0 7	 0 7	 0 7	  0 7	   0 7	     0
		ГДДДДДДДДЕДДДДДДДДЕДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДДДДДДґ
		ібайт n+3іMSB  слово   LSBібайт n-1ібайт n-2ібайт n-3і
		АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
				       адрес базы:байт n
       Целочисленные данные размером в двойное слово
		7	0 7	 0 7	 0 7	  0 7	   0 7	    0
		ГДДДДДДДДЕДДДДДДДДЕДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДДДДДДґ
		ібайт n+4іMSB  двойное слово		 LSBібайт n-1і
		АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
			     - 23 -
       Упакованный двоичный код,кодируемый десятичными данными
	7      0 7	0 7	 0 7	 0 7	  0 7	   0 7	     0
       ГДДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДД
ДДДДґ
       ібайт n+3ібайт n+2ібайт n+1іMSBіLSBібайт n-1ібайт n-2ібайт
 n-3і
       АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДДЩ
				       адрес базы:байт n
       Неупакованный двоичный код,кодируемый десятичными данными
	7      0 7	0 7	 0 7	 0 7	  0 7	   0 7	     0
       ГДДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДД
ДДДДґ
       ібайт n+3ібайт n+2і ; і MSDі ; іLSBібайт n-1ібайт n-2ібайт
 n-3і
       АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДДЩ
				       адрес базы:байт n
      Последовательность данных размером в байт
	7      0 7	0 7	 0 7	 0 7	  0 7	   0 7	     0
       ГДДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДД
ДДДДґ
       ібайт n+3ібайт n+2ібайт n+1ібайт n ібайт n-1ібайт n-2ібайт
 n-3і
       АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДДЩ
				       адрес базы:байт n
       (Последовательность данных размером в слово или двойное
	слово подобна последовательности размером в байт)
      Указатель адреса завершения (16-ти разрядный)
	7      0 7	0 7	 0 7	 0 7	  0 7	   0 7	     0
       ГДДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДД
ДДДДґ
       ібайт n+4і    селектор	  ісмещение 16-раз.ібайт n-1ібайт n
-2і
       АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДДЩ
				       адрес базы:байт n
      Указатель адреса завершения (32-ух разрядный)
	7      0 7	0 7	 0 7	 0 7	  0 7	   0 7	     0
       ГДДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДДДДДЕДДДДДДДДЕДДДДДДДДЕДДДД
ДДДДґ
       ібайт n+6і     селектор	  і    32-ух разрядное смещение   
   і
       АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
ДДДДЩ
				       адрес базы:байт n
  Рис.2.13 Организация типов данных 80386 в памяти
		       Адресация памяти
		       ДДДДДДДДДДДДДДДД
    Обращение  к  памяти может делаться для выбора данных или ко-
манд. Команды, производящие обращение к данным содержат  информа-
цию, которая точно определяет метод доступа к данным. Режим адре-
сации - это метод, используемый для доступа к памяти, а эффектив-
ный адрес - это адрес ячейки памяти. Режимы адресации могут также
определять  регистр  80386 как место размещения операнда. Команды
могут задавать операнд в одном из трех случаев:
			     - 24 -
    Неявно. Определенная команда всегда требует наличия некоторо-
    ДДДДДД
го метода адресации для операндов, находящихся в памяти  или  ре-
гистре. Например, команда PUSH всегда использует указатель стека
для адресации.
    Точно определен регистр. Команда использует код для обращения
    ДДДДДДДДДДДДДДДДДДДДДДД
к определенному регистру в 80386, например, команда ADO AX, DX.
    При  помощи метода адресации. Команда использует код для  вы-
    ДДДДДДДДДДДДДДДДДДДДДДДДДДДД
числения эффективного адреса памяти.
    Первые два метода по существу самовозбуждаемые. Этот параграф
описывает  третий метод: режимы адресации. Методы адресации опре-
деляют последовательность действий для 80386 при  вычислении  эф-
фективного адреса, для выбора одной ячейки из всех возможных яче-
ек в адресном пространстве памяти.
    Режимы  адресации  очень  важны.  Большинство команд включает
спецификацию режима адресации.
		  Адресное пространство памяти
		  ДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    80386 поддерживает несколько видов представления пространства
памяти. Виртуальное адресное пространство - это пространство дос-
тупное	программисту;  физическое  адресное  пространство  -  это
пространство реально построенное на кристаллах памяти. 80386 под-
держивает 32-х разрядное физическое адресное  пространство  до	4
Гбайт  (  или 4 294 967 296 байтов) и еще больше, 46-ти разрядное
виртуальное  адресное пространство, которое примерно 16  400  раз
больше физического пространства.
    Виртуальный адрес содержит значение селектора сегмента и зна-
чения  смещения,  как  показано  на  рис. 2.14. Селектор содержит
13-ти разрядный индекс, который затем об`единяется с битом  инде-
фикатора таблицы и 32-х разрядным смещением, что обеспечивает ко-
нечный 46-ти разрядный виртуальный адрес и, следовательно, вирту-
					  46
альное адресное пространство емкостью до 2  байт (64 тера байта).
    Физический	адрес соответствует 32-х разрядному значению, как
иллюстрируемая на рис. 2.15, обеспечивая линейное физическое  ад-
			   32
ресное пространство до	  2  байт.
    46		     34 33 32 31				0
    ЕДДДДДДДДДДДДДДДЕДДЕДДЕДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕ
    і	 ИНДЕКС     іTIі RРL і		СМЕЩЕНИЕ		і
    АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
  Рис.2.14 Виртуальный адрес
			     31 				0
			     ЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЕ
			     і	    ФИЗИЧЕСКИЙ АДРЕС		і
			     АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
  Рис.2.15 Физический адрес
			Вычисление адреса
			ДДДДДДДДДДДДДДДДД
    Вычисление	адреса 80386 происходит от виртуального адресного
пространства к физическому  адресному  пространству,  через  нес-
колько промежуточных значений.
    При  возможном  разбиении на страницы, вычисление адреса осу-
ществляется за три шага обработки, как показанона рис. 2.16. Пер-
вый, до трех адресных компонент: база, смещение и индекс  масшта-
бирования,  суммируются  (любое  выполнение игнорируется) к форме
			     - 25 -
32-х разрядного эффективного адреса, который является смещением в
текущем сегменте. На втором этапе, адрес базы  текущего  сегмента
прибавляется  (выполнение  снова  игнорируется)  для формирования
32-х разрядного линейного адреса. На третьем этапе, когда  разби-
ение  на  страицы  допускается,  устройство разбиения на страницы
транслирует линейный адрес в 32-х разрядный физический	адрес.	В
течение  трансляции,  устройство  разбиения  на страницы заменяет
старшие 20  разрядов физического номера страниц.  Младшие двенад-
цать разрядов, смещение страницы, неизменяются при  разбиении  на
							12
страницы, т.к. каждая страница памяти имеет 4096 байт (2  байтов)
    Когда разбиение на страницы не допускается, то линейный адрес
сам используется как физический адрес. Как показано на рис. 2.17,
вычисление  адреса  осуществляется  за	два шага обработки, когда
разбиение на страницы не допускается; эффективный адрес  и  затем
физический адрес вычисляются.
			Режимы адресации
			ДДДДДДДДДДДДДДДД
    Режимы  адресации 80386 позволяют точно определить какие ком-
поненты используются в вычислении адреса. Из возможных	компонен-
тов (базы, смещения и индекс масштабирования), любой поднабор или
любой компонент может быть использован при вычислении эффективно-
го адреса. Выбранный режим адресации определяет используемые ком-
поненты.
    80386 поддерживает 32-х разрядные и 16-ти разрядные операции,
как представлено в табл. 1.1 и, следовательно, обеспечиваются два
набора	режимов  адресации. 32-х разрядные режимы адресации, т.е.
режимы по умолчанию и используемые при 32-х разрядной операции, в
общем иллюстрируются на рис. 2.16 и 2.17, все вычисляют 32-х раз-
рядный эффективный адрес. 16-ти разрядные режимы адресации, режи-
мы по умолчанию для 16-ти  разрядной  операции,  вычисляют  16-ти
разрядный  эффективный	адрес.	16-ти  разрядные режимы адресации
полностью совместимы с 8086; 32-х разрядные режимы адресации  яв-
ляются	супер  набором,  дающим  высокую недежность и оптимальное
масштабирование компоненты индекса.
    Префикс  размера  адреса,  показанный  на рис. 2.18, является
байтом, который может размещаться перед командой для переключения
режима адресации из набора по умолчанию в  альтернативный  набор.
Когда  32-х разрядные режимы адресации присутствуют по умолчанию,
префикс размера адреса вызывыает 16-ти разрядные  режимы  адреса-
ции. Наоборот, когда 16-ти разрядные режимы адресации присутству-
ют  по умолчанию, то префикс размера адреса вызывает 32-х разряд-
ные режимы адресации. Префикс размера адреса влияет только на ко-
манду, которой он предшествует. Все 16-ти разрядные режимы  адре-
сации описываются в главе 4; 32-х разрядные - в главе 7.
			   7		   0
			  -------------------
			  | 0 1 1 0 0 1 1 1 | = 67
			  -------------------
		     Байт префикса размера адреса
		   Рис. 2.18. Префикс размера адреса
			     - 26 -
			       31	      15	     0
			       ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
       Базовый регистр:        і	Значение базы	     і
			       АДДДДДДДДДДДДДДДДДВДДДДДДДДДДДЩ
						 і
	  31	       15	       0	 і
	  ЪДДДДДДДДДДДДВДДДДДДДДДДДДДДДї	 і
	  ізнак - рас- ізнак-	       і	 щ  Сложение по
Смещение: і ширенное   ірасшир.        ГДДДДДДДДц+	    32
	  АДДДДДДДДДДДДБДДДДДДДДДДДДДДДЩ	 і  модулю 2
						 і
	  31				0	 і
	  ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї	 і
Индексный і				і	 щ  Сложение по
регистр:  і	Значение индекса	ГДДДВДДДц+	    32
	  АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ   ш	 і  модулю 2
					    і	 і
					    і	 і
			ЪДДДДДДДДДДДДДДДї   і	 і
			і масштабный	і   і	 і
			і множитель	ГДДДЩ	 і     шаг 1
			АДДДДДДДДДДДДДДДЩ	 і
			 1, 2, 4, или 8 	 і
						 і
	   31			       0	 і
Адрес базы ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДї	 і
	   і			       і	 щ  Сложение по
сегмента:  і	  База сегмента        ГДДДДДДДДц+	    32
	   і			       і	 і  модулю 2
	   АДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ	 і
						 і	    шаг 2
						 і
						 і
						 і  ЛИНЕЙНЫЙ
						 і  АДРЕС =
						 і
- - - - - - - - - - - - - - - - - - - - - - - - -і- - - - - -
						 і
				31	  12 11  і	     0
				ЪДДДДДДДДДДДД----і-----------|
Трансляция разбиения		ітрансляция і	 і  смещение |
на страницы:			і страниц   і	 і	     |
				і		 і в странице|
				АДДДДДДДДДДДБД---і-----------
						 і
						 і  ФИЗИЧЕСКИЙ
						 і  АДРЕС
						 і	  шаг 3
						 і
			       31	      15 щ	     0
			       ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
Физический адрес:	       і      Физический адрес	     і
			       АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
  Рис.2.16 Вычисление 32-ух разрядного адреса (с возможным
	   разбиением на страницы)
			     - 27 -
			       31	      15	     0
			       ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
       Базовый регистр:        і	Значение базы	     і
			       АДДДДДДДДДДДДДДДДДВДДДДДДДДДДДЩ
						 і
	  31	       15	       0	 і
	  ЪДДДДДДДДДДДДВДДДДДДДДДДДДДДДї	 і
	  ізнак - рас- ізнак-	       і	 щ  Сложение по
Смещение: і ширенное   ірасшир.        ГДДДДДДДДц+	    32
	  АДДДДДДДДДДДДБДДДДДДДДДДДДДДДЩ	 і  модулю 2
						 і
	  31				0	 і
	  ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї	 і
Индексный і				і	 щ  Сложение по
регистр:  і	Значение индекса	ГДДДВДДДц+	    32
	  АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ   ш	 і  модулю 2
					    і	 і
					    і	 і
			ЪДДДДДДДДДДДДДДДї   і	 і
			і масштабный	і   і	 і
			і множитель	ГДДДЩ	 і	    шаг 1
			АДДДДДДДДДДДДДДДЩ	 і
			 1, 2, 4, или 8 	 і
						 і
	   31			       0	 і
Адрес базы ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДї	 і
	   і			       і	 щ  Сложение по
сегмента:  і	  База сегмента        ГДДДДДДДДц+	    32
	   і			       і	 і  модулю 2
	   АДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ	 і
						 і	    шаг 2
						 і
						 і
				    ЛИНЕЙНЫЙ	 і  ФИЗИЧЕСКИЙ
				    АДРЕС	 і  АДРЕС
						 і
						 і
			       31	      15 щ	     0
			       ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
			       і			     і
Физический адрес:	       і      Физический адрес	     і
			       АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
  Рис.2.17 Вычисление 32-ух разрядного адреса (без разбиения
	   на страницы)
			Выбор регистра сегмента
			ДДДДДДДДДДДДДДДДДДДДДДД
    Шесть регистров сегмента 80386 указывают, какой сегмент явля-
ется  доступным  в  данный момент для выполняющейся команды. Хотя
команды, которые обращаются к памяти обычно  не  указывают  точно
требуемый сегмент. Обычно регистр сегмента выбирается явно,  сог-
ласно  правилам представленным в табл. 2.6. Так таблица показыва-
ет, как используют сегмент, указываемый регистром SS; и в  общем,
как  для  обращения к данным, используют сегмент, указываемый ре-
гистром DS. Такое размещение ординарно и эффективно.
			     - 28 -
						      Таблица 2.7
		   Правила выбора регистра сегмента
-----------------------------------------------------------------
				    |Использование|Возможные пре-
       Типы обращения к памяти	    |сегмента	по|фиксы, отвер-
				    |  умолчанию  |гающие сегмент
-----------------------------------------------------------------
Выборка команд программы из памяти	 CS	       Нет
Источник команд POP, POPA		 SS	       Нет
Адресант команд PUSH, PUSHA		 SS	       Нет
Другие обращения за данными, при
помощи эффективного адреса, ис-
пользуя регистр базы:
	   [EAX]			 DC	   CS,SS,ES,FS,GS
	    EBX 			 DC	   CS,SS,ES,FS,GS
	    ECX 			 DC	   CS,SS,ES,FS,GS
	    EDX 			 DC	   CS,SS,ES,FS,GS
	    ESI 			 DC	   CS,SS,ES,FS,GS
	    EDI*			 DC	   CS,SS,ES,FS,GS
	    EBP 			 SS	   CS,SS,ES,FS,GS
	    ESP 			 SS	   CS,SS,ES,FS,GS
-----------------------------------------------------------------
 *  Обращения  к  данным для адресантов последовательности команд
STOS, REP, STOS,MOVS и REP MOUS используют EDI как регистр базы и
ESI как регистр сегмента, с невозможностью отвержения сегмента.
    Неявный выбор может быть отвергнут при помощи  байта  префикс
отвержение сегмента. Префикс отвержения сегмента, если размещает-
ся до команды, позволяет использовать любой регистр сегмента, от-
вергая	неявные  правила  табл. 2.6. Префиксы отвержения сегмента
описываются в главе 3. Ниже на языке ассемблера, приводится  при-
мер употребления префикса отвержения сегмента:
   TEST  CS:[EBP+q];	операнд в CS, сегмент программы
   MOV EBX, ES: [EDI];	операнд в ES, альтернативный сегмент
			данных


Яндекс цитирования