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


больше клиентов

 

Часть 8

			    - 254 -
  ЙНННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН»
  єIRET/IRETD Возврат из прерывания (или из задачи в Защищенномє
  є			     режиме)			       є
  ИННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННј
			    ФОРМАТ:
		     ЪДДДДДДДДї
IRET		     і11001111і
		     АДДДДДДДДЩ
			    ФУНКЦИЯ:
   IF (ADRESS SIZE = 32) THEN
   BEGIN
     POP EIP;	      ( IRET снимает со стека EIP или IP)
     POP CS;	      ( IRET также снимает со стека CS)
     POP EFLAGS;     ( IRET также снимает со стека EFLAG или FLAG
   END
   ELSE
   BEGIN
     POP IP;	      ( IRET снимает со стека EIP или IP)
     POP CS;	      ( IRET также снимает со стека CS)
     POP FLAGS;     ( IRET также снимает со стека EFLAG или FLAG)
   END
			   ОПИСАНИЕ:
IRET обычно появляется в конце программы обслуживания прерываний
для контроля возврата к прерванной программе.  IRET  снимает  со
стека указатель команды и код регистра сегмента,  т.о.	выполняя
межсегментный возврат. Она также снимает со стека флаг регистра,
который содержит состояние IF, предшествующего прерыванию.
Когда  IRET  имеет  место  в  реальном	режиме	или   в   режиме
виртуальном 8086, то указатель команды и регистр кода  сегмента,
снятые со стека,  определяют  адрес,  куда  должно  возвратиться
выполнение главной программы.
Когда  IRET  имеет  место   в	защищенном   режиме,   действия,
выполняемые  80386  могут  быть  довольно  сложными   и   должны
соответствовать одному из 3-х состояний:
1.сегмент кода находится на текущем уровне привилегии (DPL=CPL);
2.сегмент кода находится на более привилегированном уровне (DPL<
CPL) или
3.сегмент состояния задач.
Команда IRET также годится для окончания  (завершения)	решаемой
задачи, где она  вызывает  переключение  к  предыдущему  заданию
(условие решаемой задачи обозначается NT=1 в регистре EFLAG).
ПРИМЕР:
       IRET
ДЕТАЛИ ЗАЩИЩЕННОГО РЕЖИМА:
IF флаг режима виртуального 8086 (VM)=1 и IOPL<3
THEN Исключение "по стандартной защите" (код ошибки 0000h)  (для
эмуляции команды разрешить супервизор защищенного режима)
ELSE
 IF флаг Вложенной Задачи (NT=1) THEN go to (перейти) к ВОЗВРАТУ
ЗАДАЧИ
 ELSE
 IF флаг режима виртуального 8086 (VM)=1 в имидже флага на стеке
 THEN goto ВОЗВРАТ СТЕКА К РЕЖИМУ ВИРТУАЛЬНОМУ 8086
 ELSE goto ВОЗВРАТ СТЕКА.
ВОЗВРАТ СТЕКА К РЕЖИМУ	ВИРТУАЛЬНОМУ  8086(Прерванная  процедура
была в режиме виртуальном 8086)
			    - 255 -
CPL должен=0 ELSE Исключение "по стандартной защите" (код ошибки
селектора сегмента).
Вершина стека 36 байтов уровня 0 должна  быть  в  пределах  ELSE
Отказ стека (код ошибки 0000h)
Выполнить возврат CS селектора и соответствующего дескриптора:
 Селектор не должен быть нулем ELSE Исключение	"по  стандартной
защите" (код ошибки 0000h).
 Индекс селектора должен быть в пределах таблицы ELSE Исключение
"по стандартной защите" (код ошибки селектора возврата).
 Байт Права Доступа (AR) должен означать сегмент кода  ELSE
Исключение  "по  стандартной  защите"  (код   ошибки   селектора
возврата).
 DPL сегмента кода должен = 3 ELSE  Исключение	"по  стандартной
защите" (код ошибки селектора возврата).
 Сегмент  кода	должен	существовать  ELSE  Исключение	 "Данные
отсутствуют" (код ошибки селектора возврата)
Выполнить SS селектор возврата и соответствующего дескриптора:
 Селектор не должен быть нулем ELSE Исключение	"по  стандартной
защите" (код ошибки 0000h).
 Индекс селектора должен быть в пределах таблицы ELSE Исключение
"по стандартной защите" (код ошибки селектора стека).
 RPL селектор должен = RPL  селектора возврата	ELSE  Исключение
"по стандартной защите" (код ошибки селектора стека).
 Байт Права  Доступа  (AR)  должен  означать  разрешение  записи
сегмента ELSE Исключение "по  стандартной  защите"  (код  ошибки
селектора стека).
 DPL сегмента стека должен = 3 ELSE  Исключение "по  стандартной
защите" (код ошибки селектора возврата).
 Сегмент стека	должен	существовать  ELSE  Исключение	 "Данные
отсутствуют" (код ошибки селектора возврата)
Указатель  команды  должен  быть в  пределах сегмента кода  ELSE
Исключение  "по  стандартной защите" (код ошибки 0000h).
Загрузить  EFLAGS  SS:[ESP+8]	(Устанавливается   флаг   режима
				 виртуального	8086   (VM)    в
				 прерываемой программе)
EIP := Pop().
CS  :=Pop().(CS  и  все  другие  величины   регистра   сегмента,
	     снятые со стека, ведут себя точно также как в  8086
	     при VM=1)
throwaway := Pop(). (Выброс уже загруженного EFLAGS)
ES := Pop(). (Снять со стека 4 байта, выбросить 2 верхних байта)
DS := Pop(). (Снять со стека 4 байта, выбросить 2 верхних байта)
FS := Pop(). (Снять со стека 4 байта, выбросить 2 верхних байта)
GS := Pop(). (Снять со стека 4 байта, выбросить 2 верхних байта)
IF CS.RPL > CPL
THEN
 TempESP := Pop().
 TempSS := Pop().
 SS:ESP := TempSS:TempESP.
ВОЗВРАТ ЗАДАЧИ:
Выполнить Селектор Обратной Связи в TSS,  адрессованный  текущим
Регистром Задач (TR):
 Должен    глобально	описываться    в     бите     индикатора
глобально/локальной таблицы  (TI) ELSE	исключение "недопустимый
TSS" (код ошибки  селектора TSS).
 Индекс должен быть в пределах GDT ELSE исключение "недопустимый
TSS" (код ошибки  селектора TSS).
 Байт Права Доступа  (AR)  должен  описывать  Сегмент  Состояния
Задачи ELSE исключение "недопустимый TSS" (код ошибки  селектора
TSS).
			    - 256 -
 Новый TSS должен быть занят ELSE  исключение "недопустимый TSS"
(код ошибки  селектора TSS).
 Задача должна существовать ELSE исключение "Данные отсутствуют"
(код ошибки  селектора TSS).
ПЕРЕКЛЮЧАЕМЫЕ ЗАДАЧИ без вложения задачи, на  TSS,  определяемый
селектором обратной связи.
Отметить задачу, из которой только что вышли, как НЕЗАНЯТУЮ.
Указатель  команды  должен  быть в  пределах сегмента кода  ELSE
Исключение  "по  стандартной защите" (код ошибки 0000h).
ВОЗВРАТ СТЕКА:
IF размер операнда = 32
 THEN 3-е слово на  стеке должно  быть	в  пределах  стека  ELSE
исключение "Отказ стека" (код ошибки 0000h)
ELSE 2-е слово	на  стеке должно  быть	в  пределах  стека  ELSE
исключение "Отказ стека" (код ошибки 0000h)
Возврат RPL селектора  CS  должен  быть  >  CPL  Исключение  "по
стандартной защите" (код ошибки селектора возврата).
IF RPL селектора возврата = CPL
 THEN goto ВОЗВРАТ К ТАКОМУ ЖЕ УРОВНЮ
 ELSE goto  ВОЗВРАТ  К	ВЫХОДНОМУ  УРОВНЮ    (возврат  к  уровню
					      меньшей привилегии)
ВОЗВРАТ К ТАКОМУ ЖЕ УРОВНЮ:
IF размер операнда = 32
THEN
 Верхние 12 байт на стеке должны быть в пределах ELSE исключение
"Отказ стека" (код ошибки 0000h).
 Возврат  селектора  CS  (на  ESP+4)  не   должен   быть   нулем
ELSE исключение  "по стандартной защите" (код ошибки 0000h).
ELSE
 Верхние 6 байт на стеке должны быть  в пределах ELSE исключение
"Отказ стека" (код ошибки 0000h).
 Возврат  селектора  CS  (на  ESP+2)  не   должен   быть   нулем
ELSE исключение  "по стандартной защите" (код ошибки 0000h).
 Индекс селектора должен быть в пределах его таблицы дескриптора
ELSE исключение  "по стандартной  защите" (код  ошибки селектора
возврата)
 Байт Права Доступа (AR) должен  означать    сегмент  кода  ELSE
исключение  "по  стандартной  защите   (код   ошибки   селектора
возврата).
IF несоответствующий сегмент кода
THEN  DPL  сегмента  кода  должен  =  CPL  ELSE  исключение  "по
стандартной защите" (код  ошибки селектора возврата).
IF соответствующий сегмент кода
THEN  DPL сегмента кода должен быть > CPL  ELSE  исключение  "по
стандартной защите" (код  ошибки селектора возврата).
Сегмент должен существовать ELSE Исключение "Данные отсутствуют"
(код ошибки селектора возврата)
Указатель  команды  должен  быть в  пределах сегмента кода  ELSE
Исключение  "по  стандартной защите" (код ошибки 0000).
IF размер операнда = 32
 THEN
  Снять со стека CS:EIP.
  Загрузить кэш дескриптора CS новым дескриптором сегмента кода.
  Загрузить EFLAGS 3-им DWORD из стека.
  Увеличить ESP на 12, чтобы учесть величины, снятые со стека.
 ELSE
			    - 257 -
  Загрузить кэш дескриптора CS новым дескриптором сегмента кода.
  Загрузить EFLAGS 3-им DWORD на стеке.
  Увеличить SP на 6.
ВОЗВРАТ К ВЫХОДНОМУ УРОВНЮ:
IF размер операнда = 32
THEN
 Верхние 20 байт на стеке должны быть в пределах ELSE исключение
"Отказ стека" (код ошибки 0000h).
ELSE
 Верхние 10 байт на стеке должны быть в пределах ELSE исключение
"Отказ стека" (код ошибки 0000h).
Выполнить возврат CS селектора и соответствующего дескриптора:
 Селектор не должен  быть  0  ELSE  исключение	"по  стандартной
защите" (код ошибки 0000h).
 Индекс селектора должен быть в пределах его таблицы дескриптора
ELSE исключение  "по стандартной  защите" (код  ошибки селектора
возврата)
 Байт Права Доступа (AR) должен  означать    сегмент  кода  ELSE
исключение  "по  стандартной  защите   (код   ошибки   селектора
возврата).
IF несоответствующий сегмент кода
THEN DPL сегмента кода должен = CS селектора RPL ELSE исключение
"по стандартной защите" (код  ошибки селектора возврата).
IF соответствующий сегмент кода
THEN  DPL сегмента кода должен быть < CPL  ELSE  исключение  "по
стандартной защите" (код  ошибки селектора возврата).
Сегмент должен существовать ELSE Исключение "Данные отсутствуют"
(код ошибки селектора возврата)
Выполнить возврат CS селектора и соответствующего дескриптора:
 Селектор не должен  быть  0  ELSE  исключение	"по  стандартной
защите" (код ошибки 0000h).
 Индекс селектора должен быть в  пределах  ELSE  исключение  "по
"по стандартной  защите" (код  ошибки селектора стека)
 Селектор RPL должен = RPL  селектора  возврата  ELSE исключение
"по стандартной  защите" (код  ошибки селектора стека)
 Байт Права Доступа  (AR)  должен   означать  разрешение  записи
сегмента кода ELSE исключение "по стандартной защите (код ошибки
селектора стека).
DPL  сегмента стека должен = RPL возвращаемого	CS селектора RPL
ELSE исключение "по стандартной защите" (код  ошибки селектора
возврата).
Сегмент должен существовать ELSE Исключение "Данные отсутствуют"
(код ошибки селектора возврата)
Указатель  команды  должен  быть в  пределах сегмента кода  ELSE
Исключение  "по  стандартной защите" (код ошибки 0000).
IF размер операнда = 32
 THEN
  Загрузить CS:EIP из стека.
  Загрузить EFLAGS величинами в SS:[ESP + 8].
 ELSE
  Загрузить CS:IP из стека.
  Загрузить EFLAGS величинами в SS:[SP + 4].
Загрузить CS:EIP из стека.
Установить CPL в RPL возвращаемого CS селектора
Загрузить кэш дескриптора CS дескриптором CS.
Загрузить кэш дескриптора SS дескриптором SS.
FOR каждого ES,FS,GS,DS
DO
			    - 258 -
 IF   величина	 текущего   RPL   регистра   сегмента	 неверна
(недействительна) для использования на выходном уровне
 THEN  обнулить  регистр  сегмента  и  очистить  соответствующие
верные биты флага.
 Для того чтобы быть правильным, устанавливающий регистр  должен
соответствовать следующим требованиям:
  Индекс селектора должен быть в пределах   таблицы дескриптора,
  Байт Права Доступа (AR) должен  означать  сегмент  данных  или
  читаемый сегмент кода,
  IF сегмент-это данные  или  несоответствующий  код,  THEN  DPL
  должен быть > CPL или DPL должен быть > RPL.
ФЛАГИ:
Флаги не задействуются до тех пор, пока переключатель  задач  не
окажется в защищенном режиме.
ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ РЕАЛЬНОГО РЕЖИМА:
Прерывание 13 имеет место, если любая часть  операнда  в  памяти
является исполнительным адресом, большим, чем FFFFh в  сегментах
CS, DS, ES, FS или GS. Прерывание 12  имеет  место,  если  любая
часть  операнда  в  памяти  является   исполнительным	адресом,
большим, чем FFFFh в стековом сегменте SS.
ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ ЗАЩИЩЕННОГО РЕЖИМА:
Исключительная	 ситуация  "по стандартной  защите"   (исключение
13)  идет с кодом ошибки  0000h для  операндов	сегментов  памяти
CS, DS, ES,  FS  или  GS,  если  операнд   источника	 является
нечитаемым  сегментом  кода, или   если   любая   часть  операнда
является   исполнительным   адресом   выше   предела	сегмента.
Исключение  стека  идет с кодом  ошибки  0000h	для  операндов	в
сегменте   стека,   если   любая    часть   операнда	 является
исполнительным адресом выше предела сегмента. Исключение стека	с
кодом ошибки селектора	сегмента  имеет  место,  если  операнд	в
памяти находится в сегменте SS и маркирован,  как  отсутствующий.
Исключительная	ситуация  "данные  отсутствуют"  (исключение  11)
имеет место с кодом ошибки селектора  сегмента,  если  операнд	в
памяти	находится  в  сегменте	DS,  ES,   FS,	 GS   и   отмечен
несуществующим. Исключительная ситуация "данные отсутствуют"
имеет место с кодом ошибки селектора  сегмента,  если  операнд	в
памяти	находится  в  сегменте	DS,  ES,   FS,	 GS   и   отмечен
несуществующим.   Исключительная   ситуация   "отказ    страницы"
(исключение 14) с кодом ошибки кода  отказа  и	линейным  адресом
отказа находится в регистре CR2. Исключительная ситуация Сегмента
Состояния Задач (исключение 10)  с  кодом  ошибки  селектора  для
несогласованностей в Сегменте Состояния Задач имеет  место,  если
задействован переключатель задач.
ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ РЕЖИМА ВИРТУАЛЬНОГО 8086:
Такие  же, как	в  реальном  режиме, но  имеют место в защищенном
режиме при уровне привилегии 0. Формат стека с уровнем привилегии
0 после исключения (с кодом  ошибки)  или  прерывания  (без  кода
ошибки) показан на рис.12.2.Также Исключительная ситуация "отказ"
страницы" с кодом ошибки кода отказа и  линейным  адресом  отказа
находится в регистре CR2.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 259 -
	   ЙНННННННННННННННННННННННННННННННННННННННННН»
	   єJCC 	  Переход при условии "истина"є
	   ИННННННННННННННННННННННННННННННННННННННННННј
			    ФОРМАТ:
	JCC				    Последовательность
					      байт(ов)
			     байт 0		байт 1
8-битовое		 0111cccc  8-битовое смещение
смещение
Полное смещение 	 00001111    1000сссс
		    C C C C	Условие
		    0 0 0 0	Переполнение
		    0 0 0 1	Нет переполнения
		    0 0 1 0	Ниже/Не выше или Равно
		    0 0 1 1	Не ниже/Выше или Равно
		    0 1 0 0	Равно/Ноль
		    0 1 0 1	Не равно/Не ноль
		    0 1 1 0	Ниже или Равно/Не выше
		    0 1 1 1	Не ниже или Равно/Выше
		    1 0 0 0	Знак/Отрицательный
		    1 0 0 1	Не знак/Положительный
		    1 0 1 0	Паритет/Четный паритет
		    1 0 1 1	Не паритет/Нечетный паритет
		    1 1 0 0	Меньше/Не больше или Равно
		    1 1 0 1	Не меньше/Больше или Равно
		    1 1 1 0	Меньше или Равно/Не больше
		    1 1 1 1	Не меньше или Равно/Больше
			    ФУНКЦИЯ:
   IF (CONDITION = TRUE) THEN
     EIP <-- EIP  +  DISPLACEMENT;  (Преобразовать  ветвь,  если
				     условие истинно)
			   ОПИСАНИЕ:
JCC обеспечивает условное ответвление внутри  сегмента	текущего
кода.  Если  условие  верно,  смещение,  данное   как	операнд,
добавляется  к	указателю  команды  для   того,   чтобы   начать
выполнение при новом офсете. Заметим, что  смещение  операнда  -
это или 8-битовое знаковое число,  или	полное	число  знакового
офсета, при этом полный офсет является 16-битовым,  если  размер
адреса-16 бит, или 32-битовым, если размер адреса-32 бита.  Т.о.
полные смещения позволяют переходы  везде  в  сегменте	текущего
кода.
Поскольку эти команды  условных  переходов  могут  разветвляться
только внутри сегмента, регистр кода сегмента не задействован.
			    - 260 -
ПРИМЕР:
       JNE     LABEL_D
ФЛАГИ:
Флаги не задействованы.
ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ РЕАЛЬНОГО РЕЖИМА:
Прерывание 13 имеет место, если  любая часть  команды приемника
является исполнительным адресом,  большим, чем FFFFh в	сегменте
CS.
ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ ЗАЩИЩЕННОГО РЕЖИМА:
Исключительная ситуация "по стандартной защите" (исключение 13)
с кодом ошибки 0000h для приемника в сегменте памяти  CS имеет
место,	если  если   любаячасть   команды   приемника	является
исполнительным	адресом  выше предела  сегмента.  Исключительная
ситуация  "данные  отсутствуют"  (исключение  11) с кодом ошибки
селектора сегмента имеет место, если операнд в памяти обозначен
в сегменте CS, как отсутствующий.
Исключительная ситуация "отказ страницы" (исключение 14) с кодом
ошибки	кода  отказа  и  линейным  адресом  отказа  находится  в
регистре CR2.
ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ РЕЖИМА ВИРТУАЛЬНОГО 8086:
Такие же, как в  реальном  режиме, но  имеют  место в  защищенном
режиме при уровне привилегии 0. Формат стека с уровнем привилегии
0 после исключения (с кодом  ошибки)  или  прерывания  (без  кода
ошибки) показан на рис.12.2.Также Исключительная ситуация "отказ"
страницы" с кодом ошибки кода отказа и  линейным  адресом  отказа
находится в регистре CR2.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
	      ЙННННННННННННННННННННННННННННННННННН»
	      єJCXZ/JECXZ   Переход, если CX/ECX 0є
	      ИНННННННННННННННННННННННННННННННННННј
			    ФОРМАТ:
	JCXZ/JECXZ
			   Байт 0	   Байт 1
    8-битовое	      ЪДДДДДДДДДДДї
    смещение	      і 11100011  і8-битовое смещение
		      АДДДДДДДДДДДЩ
			    ФУНКЦИЯ:
   IF (ECX = 0) THEN
     EIP <-- EIP + DISPLACEMENT;      (Смещение   осуществляется
				       только 8 битами)
			   ОПИСАНИЕ:
JECXZ/JCXZ обеспечивает условное  разветвление	внутри	сегмента
текущего кода на базе регистра ECX  или  CX  (в  зависимости  от
размера  операнда).  Если  состояние  регистра-0,  то  смещение,
данное как операнд, добавляется к указателю  команды  для  того,
			    - 261 -
чтобы начать выполнение  нового  офсета.  Заметим,  однако,  что
смещение   представляет   собой   8-битовое   знаковое	  число,
ограничивающее смещение диапазоном от -128 до +127.
Т.к. эта  команда  условного  перехода	может  ветвиться  только
внутри сегмента, регистр сегмента кода не задействован.
ПРИМЕР:
       JECXZ   LABEL_E
ФЛАГИ:
Флаги не задействованы.
ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ РЕАЛЬНОГО РЕЖИМА:
Прерывание 13 имеет место, если  любая часть  команды приемника
является исполнительным адресом,  большим, чем FFFFh в	сегменте
CS.
ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ ЗАЩИЩЕННОГО РЕЖИМА:
Исключительная ситуация "по стандартной защите" (исключение 13)
с кодом ошибки 0000h для приемника в сегменте памяти  CS имеет
место,	если  если   любаячасть   команды   приемника	является
исполнительным	адресом  выше предела  сегмента.  Исключительная
ситуация  "данные  отсутствуют"  (исключение  11) с кодом ошибки
селектора сегмента имеет место, если операнд в памяти обозначен
в сегменте CS, как отсутствующий.
Исключительная ситуация "отказ страницы" (исключение 14) с кодом
ошибки	кода  отказа  и  линейным  адресом  отказа  находится  в
регистре CR2.
ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ РЕЖИМА ВИРТУАЛЬНОГО 8086:
Такие же, как в  реальном  режиме, но  имеют  место в  защищенном
режиме при уровне привилегии 0. Формат стека с уровнем привилегии
0 после исключения (с кодом  ошибки)  или  прерывания  (без  кода
ошибки) показан на рис.12.2.Также Исключительная ситуация "отказ"
страницы" с кодом ошибки кода отказа и  линейным  адресом  отказа
находится в регистре CR2.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 262 -
    ЙННННННННННННННННННННННННННННННННННННННННННННННННННННННН»
    єJMP   Переход к коду (или к задаче в Защищенном режиме)є
    ИНННННННННННННННННННННННННННННННННННННННННННННННННННННННј
			    ФОРМАТ:
	JMP				   Последовательность
					      байт(ов)
			     байт 0		байт 1
Прямое,короткое 	 1 1 1 0 1 0 1 1  8-битовое смещение
смещение
Прямое Полное смещение	 1 1 1 0 1 0 0 1  Полное смещение
Косвенный по абсолютно-  1 1 1 1 1 1 1 1  mod: 1 0 0 : r/m
му офсету
Прямой			 1 1 1 0 1 0 1 0  Абсолютный офсет,
Межсегментный				  Селектор сегмента
Косвенный		 1 1 1 1 1 1 1 1  mod: 1 0 1 : r/m
межсегментный
			    ФУНКЦИЯ:
RELOAD EIP FROM OPERAND;
RELOAD CS FROM OPERAND;
			   ОПИСАНИЕ:
JMP внутри сегмента текущего кода модифицирует указатель команды
для того, чтобы  начать  выполнение  нового  офсета.  Когда  JMP
выполняется внутри сегмента текущего кода, регистр сегмента кода
не задействован.
Когда межсегментный JMP возникает в реальном режиме или в режиме
виртуальном 8086, указатель команды и регистр сегмента кода  оба
заменяются  величинами	операнда,  чтобы  начать  выполнение   в
подпрограмме.
Когда JMP имеет место в защищенном режиме, действия, выполняемые
80386,	могут  быть  довольно  сложными,  согласно   одному   из
состояний селектора приемника:
1.сегмент кода находится на текущем уровне привилегии (DPL=CPL),
2.сегмент   согласованного   кода    находится	  на	более
привилегированном уровне (DPL < CPL),
3.переключатель вызова,
4.сегмент состояния задачи или
5.переключатель задачи.
ПРИМЕР:
JMP    LABEL_A
ДЕТАЛИ ЗАЩИЩЕННОГО РЕЖИМА:
JMP ЗАЩИЩЕННОГО РЕЖИМА К  СЕГМЕНТУ  НЕСООТВЕТСТВУЮЩЕГО	(т.е.
регулярного) КОДА:
			    - 263 -
   RPL селектора приемника должен  быть численно < CPL	ELSE
Исключительная ситуация "по стандартной защите" (код  ошибки
селектора сегмента кода).
   Дескриптор DPL должен быть численно = CPL ELSE Исключение
"по стандартной защите" (код ошибки селектора сегмента кода).
   Селектор должен быть в пределах  таблицы  своего  дескриптора
ELSE исключение  "по стандартной  защите" (код  ошибки селектора
сегмента кода)
Сегмент должен существовать ELSE Исключение "Данные отсутствуют"
(код ошибки селектора сегмента кода).
   Указатель команды должен быть в  пределах сегмента кода  ELSE
Исключение "по стандартной защите" (код ошибки 0000h).
   Загрузить дескриптор сегмента кода в кэш дескриптора  CS  (не
видим для программиста).
   Загрузить регистр CS селектором сегмента кода.
   Загрузить EIP нулевым расширением (новый офсет).
   IF размер операнда = 16 THEN EIP := EIP AND 0000FFFFh.
   Установить поле RPL регистра CS в CPL.
JMP ЗАЩИЩЕННОГО РЕЖИМА К  СЕГМЕНТУ  СООТВЕТСТВУЮЩЕГО КОДА:
   DPL дескриптор должен быть численно < CPL ELSE Исключение
"по стандартной защите" (код ошибки селектора сегмента кода).
   Селектор должен быть в пределах  таблицы  своего  дескриптора
ELSE исключение  "по стандартной  защите" (код  ошибки селектора
сегмента кода)
   Индекс  сегмента  должен существовать ELSE Исключение "Данные
отсутствуют" (код ошибки селектора сегмента кода).
   Указатель команды должен быть в пределах сегмента кода ELSE
Исключение "по стандартной защите" (код ошибки 0000h).
   Загрузить дескриптор сегмента кода в кэш дескриптора CS (не
видим для программиста).
   Загрузить регистр CS селектором сегмента кода.
   Загрузить EIP нулевым расширением (новый офсет).
   IF размер операнда = 16 THEN EIP := EIP AND 0000FFFFh.
   Установить поле RPL регистра CS в CPL.
JMP ЗАЩИЩЕННОГО РЕЖИМА К ПЕРЕКЛЮЧАТЕЛЮ ВЫЗОВА:
   DPL переключателя вызова должен  быть численно > CPL ELSE
Исключение "по  стандартной  защите"  (код  ошибки  селектора
переключателя вызова).
   DPL переключателя вызова должен  быть численно > RPL ELSE
Исключение "по  стандартной  защите"  (код  ошибки  селектора
переключателя вызова).
   Переключатель  вызова  должен существовать ELSE Исключение
"Данные  отсутствуют"  (код  ошибки  селектора  переключателя
вызова).
   Выполнить поиск селектора сегмента  кода  в	переключателе
вызова:
    Селектор кода не должен быть нулем	ELSE  исключение  "по
стандартной защите" (код ошибки 0000h).
    Индекс Селектора должен быть в пределах  таблицы  своего
дескриптора  ELSE исключение  "по стандартной  защите" (код
ошибки селектора сегмента кода)
    Байт  AR  выбранного  дескриптора  должен  означать   сегмент
кода  ELSE  исключение	"по  стандартной  защите"   (код   ошибки
селектора сегмента кода).
			    - 264 -
    IF несогласованный сегмент кода
    THEN
     DPL выбранного дескриптора должен быть < CPL ELSE Исключение
"по  стандартной  защите"  (код  ошибки  селектора сегмента кода)
    ELSE
     DPL выбранного дескриптора должен быть < CPL ELSE Исключение
"по  стандартной  защите"  (код  ошибки  селектора сегмента кода)
    Установить поле RPL регистра CS в CPL.
    Сегмент кода  должен  существовать	ELSE  Исключение  "Данные
отсутствуют"(код ошибки селектора сегмента кода).
    Указатель команды должен быть в  пределах сегмента кода  ELSE
Исключение "по стандартной защите" (код ошибки 0000h).
    IF размер операнда = 32
    THEN Загрузить CS:EIP из переключателя вызова.
    ELSE Загрузить CS:IP из переключателя вызова.
    Загрузить дескриптор CS в кэш дескриптора CS.
    Установить поле RPL регистра CS в CPL.
JMP ЗАЩИЩЕННОГО РЕЖИМА К ПЕРЕКЛЮЧАТЕЛЮ ЗАДАЧ:
Переключатель задачи  DPL  должен  быть  >  CPL  ELSE  исключение
"недопустимый TSS" (код ошибки селектора переключателя).
Переключатель вызова  DPL  должен  быть  >  RPL  ELSE  исключение
"недопустимый TSS" (код ошибки селектора переключателя).
 Переключатель вызова должен существовать ELSE исключение "Данные
отсутствуют" (код ошибки  селектора переключателя).
 Проверить селектор TSS, данный в переключателе задач:
 Должен отличаться Таблица Глабального Дескриптора (GDT)  в  бите
Индикатора Таблицы (TI) ELSE  исключение "недопустимый TSS" (код
ошибки	селектора TSS).
 Индекс должен быть в пределах GDT ELSE исключение "недопустимый
TSS" (код ошибки  селектора TSS).
 Байт Права Доступа  дескриптора  TSS  должен  быть  незанят ELSE
исключение "недопустимый TSS" (код ошибки селектора TSS).
 Сегмент состояния Задачи  должен  существовать  ELSE  исключение
"Данные отсутствуют" (код ошибки  селектора TSS).
ПЕРЕКЛЮЧАЕМЫЕ ЗАДАЧИ без  вложения  задачи,  сбросить  бит  NT	в
EFLAG) для задачи, данной селектором TSS.
EIP  должен  быть  в  пределах	сегмента  кода	ELSE   исключение
"недопустимый TSS" (код ошибки 0000h)
JMP ЗАЩИЩЕННОГО РЕЖИМА К  СЕГМЕНТУ СОСТОЯНИЯ ЗАДАЧИ:
TSS DPL должен быть > CPL ELSE исключение "недопустимый TSS" (код
ошибки селектора TSS).
TSS DPL должен быть > RPL ELSE исключение "недопустимый TSS" (код
ошибки селектора TSS).
 Байт Права Доступа дескриптора TSS должен  быть незанят TSS ELSE
исключение "недопустимый TSS" (код ошибки селектора TSS).
 Переключатель задач должен существовать ELSE исключение "Данные
отсутствуют" (код ошибки  селектора переключателя).
			    - 265 -
ПЕРЕКЛЮЧАЕМЫЕ ЗАДАЧИ без  вложения  задачи,  сбросить  бит  NT	в
EFLAG) для задачи, данной селектором TSS.
EIP  должен  быть  в  пределах	сегмента  кода	ELSE   исключение
"недопустимый TSS" (код ошибки 0000h)
ФЛАГИ:
Флаги не задействуются до тех пор, пока переключатель  задач  не
окажется в защищенном режиме.
ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ РЕАЛЬНОГО РЕЖИМА:
Прерывание 13 имеет место, если любая часть  операнда  в  памяти
является исполнительным адресом, большим, чем FFFFh в  сегментах
CS, DS, ES, FS или GS. Прерывание 12  имеет  место,  если  любая
часть  операнда  в  памяти  является   исполнительным	адресом,
большим, чем FFFFh в стековом сегменте SS.
ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ ЗАЩИЩЕННОГО РЕЖИМА:
Исключительная	 ситуация  "по стандартной  защите"   (исключение
13)  идет с кодом ошибки  0000h для  операндов	сегментов  памяти
CS, DS, ES,  FS  или  GS,  если  операнд   источника	 является
нечитаемым  сегментом  кода, или   если   любая   часть  операнда
является   исполнительным   адресом   выше   предела	сегмента.
Исключение  стека  идет с кодом  ошибки  0000h	для  операндов	в
сегменте   стека,   если   любая    часть   операнда	 является
исполнительным адресом выше предела сегмента. Исключение стека	с
кодом ошибки селектора	сегмента  имеет  место,  если  операнд	в
памяти находится в сегменте SS и маркирован,  как  отсутствующий.
Исключительная	ситуация  "данные  отсутствуют"  (исключение  11)
имеет место с кодом ошибки селектора  сегмента,  если  операнд	в
памяти	находится  в  сегменте	DS,  ES,   FS,	 GS   и   отмечен
несуществующим. Исключительная ситуация "данные отсутствуют"
имеет место с кодом ошибки селектора  сегмента,  если  операнд	в
памяти	находится  в  сегменте	DS,  ES,   FS,	 GS   и   отмечен
несуществующим.   Исключительная   ситуация   "отказ    страницы"
(исключение 14) с кодом ошибки кода  отказа  и	линейным  адресом
отказа находится в регистре CR2. Исключительная ситуация Сегмента
Состояния Задач (исключение 10)  с  кодом  ошибки  селектора  для
несогласованностей в Сегменте Состояния Задач имеет  место,  если
задействован переключатель задач.
ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ РЕЖИМА ВИРТУАЛЬНОГО 8086:
Такие  же, как	в  реальном  режиме, но  имеют место в защищенном
режиме при уровне привилегии 0. Формат стека с уровнем привилегии
0 после исключения (с кодом  ошибки)  или  прерывания  (без  кода
ошибки) показан на рис.12.2.Также Исключительная ситуация "отказ"
страницы" с кодом ошибки кода отказа и  линейным  адресом  отказа
находится в регистре CR2.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 266 -
	  ЙННННННННННННННННННННННННННННННННННННННННННН»
	  єLAHF 	Загрузка AH регистра из EFLAG.є
	  ИНННННННННННННННННННННННННННННННННННННННННННј
			    ФОРМАТ:
	    ЪДДДДДДДДї
LAHF	    і10011111і
	    АДДДДДДДДЩ
			    ФУНКЦИЯ:
	AH <Д низкий байт регистра EFLAG
			   ОПИСАНИЕ:
   LAHF загружает AH регистр наиболее низким байтом EFLAG. Из MSB
в  LSB	AH  принимает  величину  SF,  ZF,   неопределенную,   AF,
неопределенную, PF, неопределенную, CF.
ВРЕМЯ ВЫПОЛНЕНИЯ:
		 2 тактаэ 0,1 мкс при 20 МГц.
ФЛАГИ:
Ни один не задействован.
ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ РЕАЛЬНОГО РЕЖИМА:
Нет.
ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ ЗАЩИЩЕННОГО РЕЖИМА:
Нет.
ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ РЕЖИМА ВИРТУАЛЬНОГО 8086:
Нет.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 267 -
	     ЙННННННННННННННННННННННННННННННННННННН»
	     єLAR	     Право доступа загрузкиє
	     ИНННННННННННННННННННННННННННННННННННННј
			    ФОРМАТ.
LAR
		      байт 0		 байт 1       байт 2
		 - - - - - - - -  - - - - - - - -  - - - - - - -
		 0 0 0 1 1 1 1	 0 0 0 0 0 0 1 0  mоd: reg : r/m
			    ФУНКЦИЯ:
IF ACCESS IS VALID
  GENERAL REGISTER <-- ACCESS RIGHTS OF GIVEN SELECTOR;
  ZF <-- 1;
ELSE
  ZF <-- 0;
			   ОПИСАНИЕ:
LAR-команда защищенного  режима.  LAR  хранит  маскируемую  форму
второго DWORD дескриптора селектора  источника,  если  дескриптор
является видимым в CPL (ослаблено селекторным RPL).
Второе маскирование DWORD выполняется посредством сложения  DWORD
с кодом 00F0FF00h.
Если размером операнда команды является WORD, то  в  этом  случае
загружается только WORD (меньшую часть DWORD  обычно  маскируют).
Маскируемая величина - FF00h.
Если тип дескриптора доступен CPL  (ослабленным  посредством  RPL
селектора),  то  ZF  устанавливается,  в  противном   случае   ZF
сбрасывается.
Все дескрипторы сегмента и переключатели являются действительными
и доступными, если CPL (ослабленный посредством RPL селектора)	<
DPL дескриптора или переключателя.
ПРИМЕР:
LAR   ECX, DESCRIPTOR_PTR  ; загрузить r/m операнд,
			   э интерпретировать операнд  как  право
			    доступа дескриптора или переключателя.
ВРЕМЯ ВЫПОЛНЕНИЯ:
из операнда регистра:	  15 тактовэ 0.75 мкс при 20 МГц
из операнда памяти:	  16 тактовэ 0.8 мкс при 20 МГц
ФЛАГИ:
ZF описан в разделе ФУНКЦИЯ выше. Все другие флаги не изменяются.
ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ РЕАЛЬНОГО РЕЖИМА:
Прерывание 6. LAR, команда защищенного режима, не распознаваема в
реальном режиме.
ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ ЗАЩИЩЕННОГО РЕЖИМА:
Такие же, как для команды ADD.
ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ РЕЖИМА ВИРТУАЛЬНОГО 8086:
Такие  же, как	в  реальном  режиме, но  имеют место в защищенном
режиме при уровне привилегии 0. Формат стека с уровнем привилегии
0 после исключения (с кодом  ошибки)  или  прерывания  (без  кода
ошибки) показан на рис.12.2.Также Исключительная ситуация "отказ"
страницы" с кодом ошибки кода отказа и  линейным  адресом  отказа
находится в регистре CR2.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 268 -
		ЙННННННННННННННННННННННННННННННН»
		єLEA	  Загрузка права доступає
		ИНННННННННННННННННННННННННННННННј
			     Формат
	  байт 0	      байт 1
	ЪДДДДДДДДДДВДДВДДВДДВДДВДВДДДДВДДДДВДДДДї
LEA	і 10001101 ірежимірегистрірегистр/памятьі
	АДДДДДДДДДДБДДБДДБДДБДДБДБДДДДБДДДДБДДДДЩ
			    Функция
GENERAL REGISTER чДД EFFECTIVE ADRESS;
			    Описание
    Команда LEA вычисляет  эффективный	адрес  в  соответствии	с
определенным способом адресации.Эффективный адрес вычисляется как
двойное слово,если используется 32-битовый  размер  адреса,и  как
слово,если используется 16-битовый размер адреса. Размер данных в
команде определяет должен ли быть эффективный  адрес  усечен  для
соответствия с регистром - приемником.
Пример:
LEA	 ECX,[EDX][4*ESI]DOLLAR
    Если  EDX=00000034h,  ESI=00000052h  и  DOLLAR=00007289h,  то
результатом  выполнения   команды   LEA   из   примера	 является
ECX=00007405h. Это - вычисленный эффективный адрес.
Временные характеристики
    2-тактовых импульса (ТИ); 0,1 мкс при 20 Мгц
Если эффективный адрес содержит  2  регистра,как  в  примере,  то
команда LEA требует один дополнительный  тактовый  импульс.Обычно
команда,вычисляющая   эффективный   адрес,который   включает	2
регистра,требует 1 дополнительный тактовый импульс.
Флаги
Не устанавливаются
Исключительные ситуации в реальном режиме
Прерывание 6; если второй операнд является регистром.
Исключительные ситуации в защищенном режиме
Исключительная ситуация "неверный код  операции"  (исключительная
ситуация  6),если  второй  операнд  -	регистр.   Исключительная
ситуация 6 не проталкивает в стек код ошибки.
Исключительные ситуации в режиме "виртуальный 8086"
Такие же,как в защищенном режиме
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 269 -
	  ЙННННННННННННННННННННННННННННННННННННННННННН»
	  єLEAVE      Высокоуровневая процедура выходає
	  ИНННННННННННННННННННННННННННННННННННННННННННј
			     Формат
	ЪДДДДДДДДДДї
LEAVE	і 11001001 і
	АДДДДДДДДДДЩ
			    Функция:
	 ESP	  EBP	 (воздействие со стороны размера адреса)
	 EBP	  POP()  (воздействие со стороны операнда)
			   Описание:
   Действие команды LEAVE обратно действию команды ENTER. ESP,EBR
восстанавливают значения,которые были до команды ENTER.
Пример:
	 LEAVE
	 RET
Временные характеристики:
4 ТИ; 0,2 мкс при 20 Мгц.
Флаги
Не устанавливаются
Исключительные ситуации в реальном режиме
Такие же,как при команде ADD
Исключительные ситуации в защищенном режиме
Такие же,как при команде ADD
Исключительные ситуации в режиме "виртуальный 8086"
Такие же,как при команде ADD
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 270 -
    ЙННННННННННННННННННННННННННННННННННННННННННННННННННННННН»
    єLGDT  Загрузить регистр таблицы глобальных дескрипторовє
    ИНННННННННННННННННННННННННННННННННННННННННННННННННННННННј
			    Формат:
	  байт 0      байт 1	    байт 2
	ЪДДДДДДДДДДВДДДДДДДДДДВДДВДДВДДДВДДДВДДДДВДДДДДї
LGDT	і 10001101 і 00000001 ірежимі010ірегистр/памятьі
	АДДДДДДДДДДБДДДДДДДДДДБДДБДДБДДДБДДДБДДДДБДДДДДЩ
			    Функция:
	 IF   (ADRESS SIZE=32)
       THEN
	 GDTR.LIMIT: GDTR.BASE чДДДД MEMORY 16:24;(загружается
						   24 бита от
						       базы)
       ELSE
	 GDTR.LIMIT:GDTR.BASE  чДДДД MEMORY 16:32;(загружается
						   32 бита от
						      базы)
			   ОПИСАНИЕ:
    LGDT загружает граничное значение и линейный базовый адрес	в
регистр    таблицы    глобальнах    дескрипторов.Таким	  образом
устанавливается размер и размещение в памяти  таблицы  глобальных
дескрипторов.
    LGDT  является  командой  операционной  системы.  Она  обычно
встречается  в	 программе   реального	 режима   когда   система
иницизируется для ввода  защищенного  режима.Кроме  того  команда
LGDT выполняется в защищенном  режиме  при  CPL=0.  В  защищенном
режиме только команды LGDT и LIDT  выполняют  загрузку	линейного
адреса в регистр.
ПРИМЕР:
	 LGDT	      GDT_INFO	;устанавливает размер и
				;граничное значение таблицы
				;глобальных дескрипторов,
				;соответствующие данным
				;в памяти,названным
				;GDT_INFO
Временные характеристики:
11 ТИ; 0,55 мкс при 20 Мгц.
Флаги:
Не устанавливаются
Исключительные ситуации в реальном режиме
    Такие же, как при команде ADD;
Исключительные ситуации в защищенном режиме
 Исключительная  ситуация   "стандартная   защита"(исключительная
ситуация 13) с кодом ошибки 0000h,если CPL не равно 0.	Остальные
исключительные ситуации-такие же ,как при команде ADD
Исключительные ситуации в режиме "виртуальный 8086"
 Исключительная  ситуация   "стандартная   защита"(исключительная
ситуация 13) с кодом ошибки 0000h,если CPL=3(не равно 0).
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 271 -
   ЙННННННННННННННННННННННННННННННННННННННННННННННННННННННННН»
   єLIDT      Загрузка регистра таблицы описателей прерыванияє
   ИНННННННННННННННННННННННННННННННННННННННННННННННННННННННННј
			    ФОРМАТ:
	  байт 0      байт 1	    байт 2
	ЪДДДДДДДДДДВДДДДДДДДДДВДДВДДВДДДВДДДВДДДДВДДДДДї
LIDT	і 00001111 і 00000001 ірежимі011ірегистр/памятьі
	АДДДДДДДДДДБДДДДДДДДДДБДДБДДБДДДБДДДБДДДДБДДДДДЩ
			    Функция:
    IF	(OPERAND SIZE =32)
    THEN
	 IDTR.LIMIT: IDTR.BASE чДДДД MEMORY 16:24;(загружается
						   24 бита от
						       базы)
       ELSE
	 IDTR.LIMIT:IDTR.BASE  чДДДД MEMORY 16:32;(загружается
						   32 бита от
						      базы)
			   ОПИСАНИЕ:
    LIDT загружает граничное значение и линейный базовый адрес	в
регистр    таблицы    дескрипторов    прерываний,таким	  образом
устанавливая размер и размещение таблицы дескрипторов  прерываний
в памяти.
    LIDT  является  командой  операционной   системы.Она   обычно
появляется   в	 программе    реального    режима,если	  система
инициализируется для ввода  защищенного  режима.Кроме  того  LIDT
выполняется в  защищенном  режиме  только  команды  LGDT  и  LIDT
выполняют загрузку линейного адреса в регистр.
ПРИМЕР:
	 LIDT	      IDT_INFO	;устанавливает размер и
				;граничное значение таблицы
				;дескрипторов прерываний,
				;соответствующие данным
				;в памяти,названным
				;IDT_INFO
Временные характеристики:
11 ТИ; 0,55 мкс при 20 Мгц.
Флаги:
Не устанавливаются
Исключительные ситуации в реальном режиме
    Такие же, как при команде ADD;
Исключительные ситуации в защищенном режиме
 Исключительная  ситуация   "стандартная   защита"(исключительная
ситуация 13) с кодом ошибки 0000h,если CPL не равно 0.	Остальные
исключительные ситуации-такие же ,как при команде ADD
Исключительные ситуации в режиме "виртуальный 8086"
 Исключительная  ситуация   "стандартная   защита"(исключительная
ситуация 13) с кодом ошибки 0000h,если CPL=3(не равно 0).
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 272 -
  ЙННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН»
  єLDS/LES/LFS/LGS/LSS	  Загрузка полного указателя в регистрє
  є			  сегмента :регистр общего назначения є
  ИНННННННННННННННННННННННННННННННННННННННННННННННННННННННННННј
			    ФОРМАТ:
	  байт 0	      байт 1
	ЪДДДДДДДДДДВДДДДДВДДДДДДДВДДДДДДДДДДДДДДї
LDS	і 11000101 ірежимірегистрірегистр/памятьі
	АДДДДДДДДДДБДДДДДБДДДДДДДБДДДДДДДДДДДДДДЩ
	  байт 0	      байт 1
	ЪДДДДДДДДДДВДДДДДДВДДДДДДДВДДДДДДДДДДДДДДї
LES	і 11000100 і режимірегистрірегистр/памятьі
	АДДДДДДДДДДБДДДДДДБДДДДДДДБДДДДДДДДДДДДДДЩ
	  байт 0      байт 1	      байт 2
	ЪДДДДДДДДДДВДДДДДДДДДДВДДДДДВДДДДДДДВДДДДДДДДДДДДДДї
LFS	і 00001111 і 10110100 ірежимірегистрірегистр/памятьі
	АДДДДДДДДДДБДДДДДДДДДДБДДДДДБДДДДДДДБДДДДДДДДДДДДДДЩ
	  байт 0      байт 1	       байт 2
	ЪДДДДДДДДДДВДДДДДДДДДДВДДДДДВДДДДДДДВДДДДДДДДДДДДДДї
LGS	і 00001111 і 10110101 ірежимірегистрірегистр/памятьі
	АДДДДДДДДДДБДДДДДДДДДДБДДДДДБДДДДДДДБДДДДДДДДДДДДДДЩ
	  байт 0      байт 1		байт 2
	ЪДДДДДДДДДДВДДДДДДДДДДВДДДДДВДДДДДДДВДДДДДДДДДДДДДДї
LSS	і 00001111 і 10110010 ірежимірегистрірегистр/памятьі
	АДДДДДДДДДДБДДДДДДДДДДБДДДДДБДДДДДДДБДДДДДДДДДДДДДДЩ
			    - 273 -
			    Функция:
    IF	 (OPERAND SIZE=32)
    THEN
    BEGIN
  GENERAL REGISTER   EFFECTIVE ADRESS  ;  (32-битовый	эффектив-
					   ный адрес)
  SEGMENT REGISTER   EFFECTIVE ADRESS  4;  (16-битовый	селектор)
END
ELSE
BEGIN
  GENERAL REGISTER   EFFECTIVE ADRESS ;    (16-битовый	эффектив-
					    ный адрес)
  SEGMENT REGISTER   EFFECTIVE ADRESS +2 ; (16- битовый селектор)
			    Описание
    Эта команда загружает из памяти полный указатель. Полный ука-
затель	состоит из направления (colrse), селектора (для идентифи-
кации отдельного сегмента) и эффективного адреса (смещение в сег-
менте). Селектор загружается в регистр сегмента, эффективный  ад-
рес - в регистр общего назначения.
    Когда  происходит  присваивание  значения регистру сегмента в
реальном или "виртуальном 8086" режимах значение селектора  сдви-
гается на 4 позиции влево для вычисления килейного базового адре-
са  сегмента. Если присваивание поисходит в защищенном режиме, то
базовые и граничное значения сегмента загружается из строки  таб-
лицы дескриптов, для данного сегмента.
Пример
	LDS  DATA SEG		   устанавливает данные сегмента,
				   соответствующего селектору  с
				   имеенем DATA SEG
Временные характеристики
    Реальный или "виртуальный 8086" режимы:
    7ТИ; 0,35 мкс при 20 МГй
Защищенный прежим:
    22ТИ; 1,1 мкс при 20МГц
Флаги
    Не устанавливаются.
Исключительные ситуации в реальном режиме
    Такие же, как при команде ADD;
Исключительные ситуации в защищенном режиме
    Такие же, как при команде ADD
Исключительные ситуации в режиме "виртуальный 8086"
    Такие же, как при команде ADD
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 274 -
   ЙНННННННННННННННННННННННННННННННННННННННННННННННННННННННННН»
   єLLDT      Загрузка регистра таблицы локальных дескрипторовє
   ИННННННННННННННННННННННННННННННННННННННННННННННННННННННННННј
			     Формат
	  байт 0     байт 1	       байт 2
	ЪДДДДДДДДДДВДДДДДДДДДДВДДДДДДДВДДДДДВДДДДДДДДДДДДДДДДї
LLDT	і 00001111 і 00000000 і режим і 000 і регистр/память і
	АДДДДДДДДДДБДДДДДДДДДДБДДДДДДДБДДДДДБДДДДДДДДДДДДДДДДЩ
			    Функция
	    LDTR    SELECTOR	     (16-битовый селектор)
			    Описание
    LLDT  -  команда защищенного режиме LLDT загружает селектор в
регистр таблицы локальных дескриптов. Т.о. устанавливается табли-
ца  локальных  дескрипторов.  Данные  базы  и  границыы   таблицы
дескрипторов  загружаются  из таблицы дескрипторов, введенной для
данного сегмента. Селектор должен  обращаться  к  дескриптору  из
таблицы локальных дескрипторов (дескриптор типа 2).
    Однако,  селектор может быть еще нулевым. В таком случае таб-
лица локальных дескрипторов считается  неверной  и  любые  ссылки
дескрипторов  на  эту таблицу вызывают общую исключительную ситу-
ацию при защите (исключая ссылки команд LAR, LSL,  VERR  и  VERW,
разработанные  для доступа к тестируемым селекторам "благотворным
образом".
    LLDT - является привилегированной командой и доступна для вы-
полнения только на нулевом уровне привилегированности.
Пример
   LLDT   INITIAL LD	  устанавливает таблицу локальных
			  дескрепторов, соответствующую селектору
			  с именем INITIAL LDT
Временные характеристики
		      20ТИ; 1,0 мкс при 20 МГц
Флаги
    Не устанавливаются
Исключительные ситуации в реальном режиме
    Прерывание 6, команда LLDT запрещена в реальном режиме.
Исключительные ситуации в защищенном режиме
    Исключительная ситуация "стандартная защита"  (исключительная
ситуация 13) с кодом ошибки 0000h, если CPL=0.
    Исключительная  ситуация  "стандартная защита" с кодом ошибки
ошибочного селектора, если операнд-селектор не ссылается на  таб-
лицы  глобальных  дескрипторов	и  дескриптор в локальной таблице
дескрипторов. Остальные исключительные ситуации - такие  же,  как
при команде ADD.
Исключительные ситуации в режиме "виртуальной 8086"
    Исключительная ситуация "неверный код операции" (исключитель-
ная ситуация 6). LLDT запрещена в режиме "виртуальный 8086".
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 275 -
   ЙННННННННННННННННННННННННННННННННННННННННННННННННННННННННН»
   єLMSW	 Загрузка регистра слова состояния компьютерає
   ИНННННННННННННННННННННННННННННННННННННННННННННННННННННННННј
			     Формат
	   байт 0      Байт 1	       байт 2
	 ЪДДДДДДДДДДВДДДДДДДДДДВДДДДДДДВДДДДДВДДДДДДДДДДДДДДДї
LMSW	 і 00001111 і 00000001 і режим і 110 і регистр/памятьі
	 АДДДДДДДДДДБДДДДДДДДДДБДДДДДДДБДДДДДБДДДДДДДДДДДДДДДЩ
			    Функция
	MSW    16-bit operand	(MSW (слово состояния компьютера)
				- младщие 16 битов из CRO)
			    Описание
    LMSW  - загружает младшую половину CRO из источника операнда.
Однако боле вероятно, что будет использоваться команда	микропро-
цессора 80386 MOV CRO, SOURCE. (Команда LMSW обеспечивает совмес-
тимость с кодом операции в процессоре 80286).
    LMSW  является  командой  операционной  системы.  Она  обычно
встречается в программе в реальном режиме в 80286  когда  система
инициализируется  для ввода защищенного режима. Эта команда может
использоваться для переключения  (перехода)  в	защищенный  режим
посредством установки бита PE в CRO. В таком случае за ней должен
следовать  межсегментный  переход для подкачки команд, дешифриру-
емых в реальном режиме, в очередь предвыборки команд.
Пример
	LMSW   IDT INFO 	   загружает младшую половину CRO
Временные характеристики
    Операнд из регистра:		 ОТИ; 0,5 мкс  при 20 МГц
    Операнд из памяти:			 ВТИ; 0,65 мкс при 20 МГц
Флаги
    Не устанавливаются.
Исключительные ситуации в реальном режиме
    Такие же, как при команде ADD.
Исключительные ситуации в защищенном режиме
    Исключительная ситуация "стандартная защита"  (исключительная
ситуация 13) с кодом ошибки 000h, если CPL=0. Остальные  исключи-
тельные ситуации такие же, как при команде ADD.
Исключительные ситуации в режиме "виртуальной 8086"
    Исключительная  ситуация  "стандартная защита" с кодом ошибки
000h, если CPL равно 3 (не равно 0).
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 276 -
      ЙННННННННННННННННННННННННННННННННННННННННННННННННННН»
      єLODSB/LODSW/LODSD	   Загрузить строку данныхє
      ИНННННННННННННННННННННННННННННННННННННННННННННННННННј
			     Формат
				ЪДДДДДДДДДДї
LODSB/LODSW/LODSD		і 1010110W і
				АДДДДДДДДДДЩ
			    Функция
   IF (OPERAND SZZE = DWORD)	      (загрузка операнда в
				       EAX/AX/AC)
 THEN
   EAX	 SOURCE INPEX
   ELSE  IF (OPERAND SIZE = WORD)
 THEN
   AX	SOORCE INDEX
  ELSE				   (размер операнда - байт)
   AL	SOURCE INDEX
   IF (ADRESS SIZE = 32) THEN	   (модификация индекса для
					   источника)
   ADYUST EST
  ELSE
   ADYUST SI			   (размер адреса - 16 бит)
			    Описание
    LODS  загружает операнды из "строки памяти" - источника. Под-
разумевается, что  строка  является  массивом  байтов,	слов  или
двойных  слов  (в зависимости от размера операнда в строке коман-
ды). После того, как пересылка произведена инддексный регистр ис-
точика автоматически изменяется (увеличивается или  изменяется	в
соответстви с DF) на величину равную размеру операнда.
    Если  размер адреса команды - два слова, то операнд (исходная
строка) - ESI . Lelare исходный операнд - SI . Правильно значение
индекса загружается до выполнения команды LODS.
Пример
    LODSW			   загружает одно слово из строки
Т.к. индексный регистр источника должен быть  загружает  при  ис-
пользовании  этой команды, то команда LODSW/W/D часто встречается
в циклах и используется для выполнения нескольких итераций.
Временные характеристики
		    STI; 0,25 мкс при 20 МГц
Исключительные ситуации в реальном режиме
    Такие же, как при команде ADD.
Исключительные ситуации в защищенном режиме
    Такие же, как при команде ADD.
Исключительные ситуации в режиме "виртуальный 8086"
    Такие же, как при команде ADD.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 277 -
	ЙНННННННННННННННННННННННННННННННННННННННННННННННН»
	єLOOP		   Выполнить цикл и уменьшить ECXє
	ИННННННННННННННННННННННННННННННННННННННННННННННННј
			     Формат
		   байт 0	   Байт 1
		 ЪДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДї
LOOP		 і 11100010 і 8-битовое смещение і
		 АДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДЩ
			    Функция
   IF  (ECX < > 0) THEN
   EIP	EIP + DISPLASEMENT		 (смещение только 8-битовое)
	       (смещение)
			    Описание
    LOOP уменьшает регистр счета без изменения флагов. Регистр	сч
ета
-  ECX	(если  размер адреса - 32 бита) и CX (если размер адреса -
 16
бит) - уменьшается как счетчик итераций без знака и  проверяется 
 (но
флаги  не  изменяются). Если регистр счета не равен нулю, то дела
ется
"короткий переход" с использованием 8-битового смещения, находяще
гося
в операнде. Смещение прибавляется к считчику команд, соответствую
щему
адресу следующей команды. Заметим, однако, что смещение  -  8-бит
овая
величина со знаком, поэтому значения смещения находятся в предела
х от
- 128 до +127.
    Т.о., выполняя команду LOOP, возможно выполнять переходы   то
лько
внутри сегмента, а содержимое регистра сегмента не изменяется.
Пример
    LOOP   LOOP START		   выполняет  определенное в регистре
				   счета количество итераций
Флаги
    Не устанавливаются.
Исключительные ситуации в реальном режиме
    Прерывание 13, если эффективный адрес любой части команды, к 
кото-
рой совершается переход, больше, чем FFFFh в CS сегмента.
Исключительные ситуации в защищенном режиме
    Исключительные ситуации "стандартная защита" (исключительная 
ситу-
ация 13) с кодом ошибки 0000h? для CS сегмента памяти, к которому
 осу-
ществляется переход, если эффективный адрес любой части команды, 
к ко-
торой  осуществляется  переход,  выходит за пределы сегмента. Иск
лючи-
тельная ситуация "отсутствие" (исключительная  ситуация  11)  с  
кодом
ошибки	равным	селектору сегмента, если операнд в памяти помечен в
 CS
сегмента как отсутствующий.  Исклжючительная  ситуация	"неисправн
ость
страницы"  (исключительная ситуация 14) с кодом ошибки равным код
у не-
исправности и линейным адресом неисправной страницы в регистре CR
2.
Исключительные ситуации в режиме "виртуальном 8086"
    Такие же, как в реальном режиме, но обрабатывчаются  в  защищ
енном
режиме	на нулевом уровне привилегированности. Формат стека в прив
иле-
гированном режиме после исключительной ситуации (с кодом  ошибки)
  или
после  прерывания  (без кода ошибки) показан на рис. 12.2. Кроме 
того,
бывает исключительная ситуация "неисправность страницы" с кодом  
ошиб-
ки,  равным коду неисправности и линейным адресом неисправной стр
аницы
в регистре CS2.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 278 -
	 ЙННННННННННННННННННННННННННННННННННННННННННННН»
	 єLOOPE/LOOPZ	Выполнить цикл и уменьшить ECX,є
	 є		если выполняется условие       є
	 ИНННННННННННННННННННННННННННННННННННННННННННННј
			     Формат
			  байт 0	  байт 1
			ЪДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДї
LOOPE/LOOPZ		і 11100001 і 8-битовое смещение і
			АДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДЩ
			    Функция
    IF	((ECX < >0 AND (ZF=1) THEN
    EIP   EIP + смещение		     смещение только 8-битовое
			    Описание
    LOOP уменьшает содержимое регистра счетчика без изменения  фл
агов.
Регистр  счетчика - ECX (если размер адреса 32 бита) или CX (если
 раз-
мер адреса 16 битов) - уменьшается как счетчик итераций  без  зна
ка  и
проверяется (но флаги не изменяются). Если регистр счетчика не ну
левой
и  флаг  равенства  нулю установлен, то совершается короткий пепр
еход,
используя 8-битовое смещение, находящееся в операнде. Смещение пр
ибав-
ляется к счетчику команд соответствующему адресу,  следующей  ком
анды.
Заметим,  однако,  что смещение - только 8-битовая величина со зн
аком.
Это ограничивает значения смещения от - 128 до +127.
    Т.о. эта команда цикла может совершать переходы только внутри
 сег-
мента, а содержимое регистра сегмента не изменяется.
Пример
    LOOPE  LOOP START	    выполняет итерации определенное в регис
тре
			    счетчика, пока  количество раз выполняется
			    ZF=1 (т.е. условие верно)
Флаги
    Не изменяются.
Исключительные ситуации в реальном режиме
    Такие же, как при команде LOOP.
Исключительные ситуации в защищенном режиме
    Такие же, как при команде LOOP.
Исключительные ситуации в режиме "виртуальный 8086"
    Такие же , как при команде LOOP.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 279 -
    ЙНННННННННННННННННННННННННННННННННННННННННННННННННННННННН»
    єLOOPNE/LOORNZ	      Выполнить цикл и уменьшить ECX,є
    є			      если не выполняется условие    є
    ИННННННННННННННННННННННННННННННННННННННННННННННННННННННННј
			     Формат
			   байт 0	   байт 1
			ЪДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДї
LOOPNE/LOOPNZ		і 11100000 і 8-битовое смещение і
			АДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДЩ
			    Функция
    IF	((ECX < >0 AND (ZF=1))THEN
    EIP    EIP + смещение		 (смещение только 8-битовое)
			    Описание
    LOOP уменьшает содержимое регистра счетчика без изменения фла
гов.|
Регистр счетчика - ECX (если размер адреса 32 бита) или CX (если 
 раз-
мер адреса 16 бит) - уменьшается как счетчик итераций без знака и
 про-
веряется (но флаги не устанавливаются). Если регистр счетчика не 
нуле-
вой  и	сброшен  флаг равенства нулю, то совершается короткий пере
ход,
используя 8-битовое смещение, находЯщееся в операнде. Смещение пр
ибав-
ляется к счетчику команд, соответствующему адресу  следующей  ком
анды.
Заметим,  однако,  что смещение - только 8-битовая величина со зн
аком.
Это ограничивает значения смещения от - 128 до + 127.
   Т.о. эта команда цикла может совершать переходы только  в  пре
делах
сегмента,  содержимое  регистра сегмента, содержимое регистра сег
мента
не изменяется.
Пример
    LOOPNE  LOOP START выполняет итерации количество раз, определ
енное
		       в регистре счетчика,  пока ZF=0	(т.е.  условие
		       не выполняется)
Флаги
    Не устанавливаются.
Исключительные ситуации в реальном режиме
    Такие же, как при команде LOOP.
Исключительные ситуации в защищенном режиме
    Такие же, как при команде LOOP.
Исключительные ситуации в режиме "виртуальный 8086"
    Такие же, как при команде LOOP.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 280 -
    ЙННННННННННННННННННННННННННННННННННННННННННННННННННННННН»
    єLSL      Загрузка граничное значение сегмента в регистрє
    ИНННННННННННННННННННННННННННННННННННННННННННННННННННННННј
			     Формат
	  байт 0    байт 1	       байт 2
       ЪДДДДДДДДДДВДДДДДДДДДДВДДДДДВДДДДДДДДВДДДДДДДДДДДДДДДї
LSL    і 00001111 і 00000011 і mod і red    і	  r/m	    і
       і	  і	     ірежимірегистр і регистр/памятьі
       АДДДДДДДДДДБДДДДДДДДДДБДДДДДБДДДДДДДДБДДДДДДДДДДДДДДДЩ
			    Функция
      IF  ACCESS IS VALID		   (существует доступ)
   THEN
	GENERAL REGISTER   SEGMENT LIMIT OF GIVEN SELECTOR
(регистр общего назначения     ограничение сегмента из данного
					 селектора)
	ZF  1
   ELSE
	ZF  0
			    Описание
    LSL  является командой защищенного режима, LSL загружает раз-
ложенное на составные части (расшифрованный)  граничное  значение
сегмента из дескриптора, если дескриптор является "видимым" в CPL
(ослабленный RPL селектора).
    LSL загружает байт граничного значения сегмента. Если гранич-
ное значение блокировано по страницам в дескрипторе, LSL "переде-
лает  (trauslate) его в байт граничного состояния перед загрузкой
его в регистр-приемник (сдвиг блокированного по страницам гранич-
ного значения на 12 битов влево, затем операция ИЛИ с 00000FFFh).
    Если тип дескриптора доступен в CPL (ослабленный RPL-селекто-
ра) устанавливает ZF=1, иначе ZF=0
    Все дескрипторы сегмента существуют и доступны, если CPL (ос-
лабленный RPL селектора) < DPL дескриптора. Однако, переключатели
не имеют место в этой команде, поскольку они не имеют поля  огра-
ничения (граничного поля).
			    - 281 -
Пример
  LSL	ECX, DESERIPTOR PTR загружает операнд из регистра/памяти,
			    интерпретируя его как граничное  зна-
			    чение сегмента, содержащиеся в  деск-
			    рипторе
Временные характепистики
    Байт  граничного  значения	из операнда-регистра: 20 тактовых
импульсов; 1,00 мкс при 20МГц.
    Байт граничного значения из операнда-памяти: 21 тактовый  им-
пульс; ;1,05 мкс при 20 МГц.
    Граничное значение страницы из операнда-регистра: 25 ТИ; 1,25
мкс при 20 МГц.
    Граничное значеие страницы из операнда-памяти: 26 ТИ; 1,3 мкс
при 20МГц.
Флаги
    Флаг  ZF устанавливается, как показано в "Функции", остальные
флаги не устанавливаются.
Исключительные ситуации в реальном режиме
    Прерывание 6. LST-команда защищенного режима и не распознает-
ся в реальном режиме.
Исключительные ситуации в защищенном режиме
    Такие же, как при команде ADD.
Исключительные ситуации в режиме "виртуальный 8086"
    Такие же, как при реальном режиме, но обрабатывается в  защи-
щенного режиме на нулевом уровне привилегированности. Формат сте-
ка  нулевом уровне привилегий после исключительной ситуации пока-
зан на рис.12.2. Кроме того, исклюдчительная ситуация  "неисправ-
ность страницы" (исключительная ситуация ) с кодом ошибки, равным
коду  неисправности и линейным адресом неисправной страницы в ре-
гистре CR2.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 282 -
	ЙННННННННННННННННННННННННННННННННННННННННННННННН»
	єLTR			Загрузить регистр задачиє
	ИНННННННННННННННННННННННННННННННННННННННННННННННј
			     Формат
	   байт 0     байт 1
	 ЪДДДДДДДДДДВДДДДДДДДДДВДДДДДДДВДДДДДВДДДДДДДДДДДДДДДДї
LTR	 і 00001111 і 00000000 і режим і 001 і регистр/память і
	 АДДДДДДДДДДБДДДДДДДДДДБДДДДДДДБДДДДДБДДДДДДДДДДДДДДДДЩ
			    Функция
	TR    SELECTOR
	      селектор			 (16-битовый селектор)
			    Описание
    LTR  является  командой защищенного режима. LTR загружает се-
лектор в TR (Регистр задачи). Таким образом  устанавливается  TSS
(сегмент  состояния  задачи) задачи. Это не является причиной пе-
реключения задачи. Данные размещения и границы TSS загружаются из
таблицы дескрипторов, введенной для данного  селектора.  Селектор
должен	ссылаться  на незанятый дескриптор TSS (тип дескриптора 1
или 9) в GDT (таблица глобальных дескрипторов).
    LTR - привилегированная команда, выполняется  только в уровне
привилегий 0.
Пример
    LTR  INITIAL  TSS	  устанавливает сегмент задачи в соответ-
			  ствии с селектором с именем INITIAL TSS
Временные характеристики
    Селектор в регистре: 23 ТИ; 1,15 мкс при 20 МГУ.
    Селектор в памяти: 27 ТИ; 1,35 мкс при 20 МГЦ.
Флаги
    Не устанавливаются.
Исключительные ситуации в реальном режиме
    Прерывание 6. LTR - запрещенная команда в реальном режиме.
Исключительные ситуации в защищенном режиме
    Исключительная ситуация "стандартная защита"  (исключительная
ситуация  13) с кодом ошибки 0000h, если CPL не равно 0. Исключи-
тельная ситуация "стандартная защита" с кодом ошибки  "ошибочного
селектора, если операнд-селектор не ссылается на GDT или дескрип-
тор  сегмента состояния задачи. Остальные исключительные ситуации
-такие же, как при команде ADD.
Исключительные ситуации в режиме "виртуальный 8086"
    Исключительная ситуация  "неверный  код  операции"  (исключи-
тельная  ситуация  6). LTR - запрещенная команда в режиме "вирту-
альный 8086".
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 283 -
     ЙНННННННННННННННННННННННННННННННННННННННННННННННННННННН»
     єMOV	    Переслать в/из регистр общего назначенияє
     ИННННННННННННННННННННННННННННННННННННННННННННННННННННННј
			     Формат
	    байт 0		 байт 1
	    ЪДДДДДДДДДДВДДДДДДДВДДДДДДДДДВДДДДДДДДДДї подпоследо-
Из регистра і 1000100W і режим і регистр і регистр/ і вательный
в регистр/  і	       і       і	 і память   і	 байт
память	    АДДДДДДДДДДБДДДДДДДБДДДДДДДДДБДДДДДДДДДДЩ  (байты)
Из AL/AX/EAX	 ЪДДДДДДДДДДї
в память	 і 1010001W і полное смещение
(короткое	 АДДДДДДДДДДЩ
кодирование)
Из регист-  ЪДДДДДДДДДДВДДДДДДДВДДДДДДДДДВДДДДДДДДДДї
ра памяти   і 1000101W і режим і регистр і регистр/ і
в регистр   і	       і       і	 і память   і
	    АДДДДДДДДДДБДДДДДДДБДДДДДДДДДБДДДДДДДДДДЩ
Из памяти в
AL/AX/EAX	 ЪДДДДДДДДДДДї
(короткое	 і 10010000W і полное смещение
кодирование)	 АДДДДДДДДДДДЩ
Непосред-					      Байты не- |
ственные    ЪДДДДДДДДДДВДДДДДДДВДДДДДДДДДВДДДДДДДДДДї посредст-
данные в    і 1100011W і режим і регистр і регистр/ і венных
регистр/    і	       і       і	 і память   і данных
память	    АДДДДДДДДДДБДДДДДДДБДДДДДДДДДБДДДДДДДДДДЩ
Непосредственные     ЪДДДДДДВДДДВДДДДДДДДДї  Байты непосредст-
данные в регистр     і 1011 і W і регистр і  венных данных
		     АДДДДДДБДДДБДДДДДДДДДЩ
			    - 284 -
			    Функция
      DESTINATION	SOURCE
      (приемник)       (источник)
		  или
      DESTINATION	 IMMEDIATE DATA
			(непосредственно
			     данные)
			    Описание
    Пересылает источника операнда (размещенный в регистре, памяти
или непосредственные данные в приемник операнда. Исходный операнд
остается  без  изменений, а операнд-приемник перезаписывается ис-
ходными данными.
Пример
   MOV	ECX, EDX		       EDX-источник
				       ECH-приемник
Если ECX=00000034h и EDX=00000052h, то	в  результате  выполнения
данной	команды ECX примет значения 00000052h. Все флаги не изме-
няются.
Временные характеристики
    Регистр  регистр: 2 ТИ; 0,1 мкс при 20 МГц
    Регистр  память: 2 ТИ; 0,1 мкс при 20 МГц
    Память   регистр 4 ТИ; 0,2 мкс при 20 МГц
    Непосредственные
    данные   регистр 2 ТИ; 0,1 мкс при 20 МГц
    Непосредственные
    данные   регистр 2 ТИ; 0,1 мкс при 20 МГц
Флаги
    Не устанавливаются.
Исключительные ситуации в реальном режиме
    Такие же, как при команде ADD.
Исключительные ситуации в защищенном режиме
    Такие же, как при команде ADD.
Исключительные ситуации в режиме "виртуальный 8086"
    Такие же, как при команде ADD.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 285 -
       ЙННННННННННННННННННННННННННННННННННННННННННННННННН»
       єMOV		  Пересылка в/из регистр сегментає
       ИНННННННННННННННННННННННННННННННННННННННННННННННННј
			     Формат
Из регистра/памяти  ЪДДДДДДДДДДВДДДДДДДВДДДДДДДДДВДДДДДДДДДДї
в сегментный	    і 10001110 і режим і сегм.	 і регистр/ і
регистр 	    і	       і       і регистр і память   і
		    АДДДДДДДДДДБДДДДДДДБДДДДДДДДДБДДДДДДДДДДЩ
Из сегментного	    ЪДДДДДДДДДДВДДДДДДДВДДДДДДДДДВДДДДДДДДДДї
регистра в	    і 10001100 і режим і сегм.	 і регистр/ і
регистр/память	    і	       і       і регистр і память   і
		    АДДДДДДДДДДБДДДДДДДБДДДДДДДДДБДДДДДДДДДДЩ
			    Функция
  SEGMENT REGISTER    REGISTER/MEMORY	  (загрука сегмент-
 (регистр сегмента)   (регистр/память)	    ного регистра)
  REGISTER/MEMORY     SEGMENT REGISTER	  (запоминание содер-
					  жимого сегментного
					       регистра)
			    Описание
    Запоминание или загрузка 16-битового регистра сегмента в  или
из памяти или регистра.  Для  этой  команды  всегда  используется
16-битовый размер операнда независимо от атрибута длины операнда.
Как  и	в других командах MOV источник операнда остается неизмен-
ным, а приемник операнда перезаписывается данными из источника.
Пример
      MOV  DS, DATA AREA	     DS-приемник
				     DATA AREA-источник, содержа-
				     щий 16-битовый селектор, ко-
				     торый загружается в DS.
Временные характеристики
Загрузка
    Из регистра общего назначения    18 ТИ; 0,9 мкс при 20 МГц
    в сегментный регистр
    Из памяти в сегментный регистр   19 ТИ; 0,95 мкс при 20 МГц
Запоминание
    Из сегментного регистра в ре-
    гистр общего назначения	     2 ТИ; 0,1 мкс при 20 МГц
    Из регистра сегмента в память    2 ТИ; 0,1 мкс при 20 МГц
Флаги
    Не устанавливаются. 	     Исключительные ситуации
				     не описаны
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 286 -
       ЙНННННННННННННННННННННННННННННННННННННННННННННННННН»
       єMOV		 Пересылка в/из системный регистр є
       ИННННННННННННННННННННННННННННННННННННННННННННННННННј
			     Формат
Из CRO/2/3 в	ЪДДДДДДДДДДВДДДДДДДДДДВДДДДВДДДДДВДДДДДДДДДї
регистр обще  - і 00001111 і 00100010 і 11 і rrr і регистр і
го назначения	АДДДДДДДДДДБДДДДДДДДДДБДДДДБДДДДДБДДДДДДДДДЩ
Из регистра	ЪДДДДДДДДДДВДДДДДДДДДДВДДДДВДДДДДВДДДДДДДДДї
общего назна-	і 00001111 і 00100000 і 11 і rrr і регистр і
чения в 	АДДДДДДДДДДБДДДДДДДДДДБДДДДБДДДДДБДДДДДДДДДЩ
CRO/2/3
Из DRO/1/2/36/7 ЪДДДДДДДДДДВДДДДДДДДДДВДДДДВДДДДДВДДДДДДДДДї
в регистр обще- і 00001111 і 00100011 і 11 і rrr і регистр і
го назначения	АДДДДДДДДДДБДДДДДДДДДДБДДДДБДДДДДБДДДДДДДДДЩ
Из регистра об- ЪДДДДДДДДДДВДДДДДДДДДДВДДДДВДДДДДВДДДДДДДДДї
щего назначения і 00001111 і 00100001 і 11 і rrr і регистр і
в DRO/1/2/3/6/7 АДДДДДДДДДДБДДДДДДДДДДБДДДДБДДДДДБДДДДДДДДДЩ
ИЗ TR 6/7 в ре- ЪДДДДДДДДДДВДДДДДДДДДДВДДДДВДДДДДВДДДДДДДДДї
гистре общего	і 00001111 і 00100110 і 11 і rrr і регистр і
назначения	АДДДДДДДДДДБДДДДДДДДДДБДДДДБДДДДДБДДДДДДДДДЩ
Из регистра об- ЪДДДДДДДДДДВДДДДДДДДДДВДДДДВДДДДДВДДДДДДДДДї
щего назначения і 00001111 і 00100100 і 11 і rrr і регистр і
TR 6/7		АДДДДДДДДДДБДДДДДДДДДДБДДДДБДДДДДБДДДДДДДДДЩ
  rrr	 CONTROL REGISTER      DEBUG REGISTER	 TEST REGISTER
       (регистр управления)   (регистр отладки) (регистр тестиро-
						     вания)
		  000	   CRO	      DRO
		  001		      DR1
		  010	   CR2	      DR2
		  011	   CR3	      DR3
		  100
		  101
		  110		      DR6	      TR6
		  111		      DR7	      TR7
			    - 287 -
			    Функция
  SYSTEM  REGISTER    GENERAL REGISTER	       (загрузка систем-
(системный регистр)   (регистр общего		 ного  регистра)
			назначения)
			   или
GENERAL  REGISTER     SYSTEM REGISTER	   (запоминание содержи-
					    мого системного ре-
						  гистра)
			    Описание
    Запоминание или загрузка 32-битового системных регистров (ре-
гистры управления, регистры отладки и страничного преобразования)
из 32 битового регистра общего назначения. Для этой команды всег-
да используется 32-битовый размер операнда независимо от атрибута
длины операнда. Как и в других командах MOV источник операнда ос-
тается без изменений и приемник операнда перезаписывается данными
из источника.
Пример
      MOV  EAX, CR2	      EAX-приемник,  CR2-источник,  этот
			      пример может появиться в программе,
			      которая исследует адрес неисправной
			      страницы	для  программы	обработки
			      неисправности страницы
Временные характеристики
Загрузка
    Из регистра в CRO/2/3     10 ТИ; 0,5 мкс при 20 МГц
    Из регистра в DR 0-3      11 ТИ; 1,1 мкс при 20 МГц
    Из регистра в DR 6/7      16 TИ; 0,8 мкс при 20 МГц
    Из регистра в TR 6/7      12 ТИ; 0,6 мкс при 20 МГц
Запоминание
    Из CRO/2/3 в регистр      6 ТИ; 0,3 мкс при 20 МГц
    Из DRO/3   в регистр      22 ТИ; 1,1 мкс при 20 МГц
    Из DR 6/7  в регистр      14 ТИ; 0,7 мкс при 2 МГц
    Из TR 6/7  в регистр      12 ТИ; 0,6 мкс при 20 МГц
Флаги
    Не устанавливаются.
Исключительные ситуации в реальном режиме
    Нет. Эта команда может использоваться в реальном режиме.
Исключительные ситуации в защищенном режиме
    Исключительная  ситуация "стандартная защита" (исключительная
ситуация 13) с кодом ошибки 0000h, если текущий уровень  привиле-
гий не нулевой. В защищенном режиме эта команда может выполняться
только при уровне привилегированности 0.
Исключительные ситуации в режиме "виртуальной 8086"
    Исключительная  ситуация  "стандартная защита" с кодом ошибки
0000h, если произведена попытка выполнения команды. Это  происхо-
дит потому, что в режиме "виртуальный 8086" CPL=3.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 288 -
      ЙНННННННННННННННННННННННННННННННННННННННННННННННННННН»
      єMOVSB/MOVSW/MOVSD	   Переслать строку данных є
      є 			  (слово или двойное слово)є
      ИННННННННННННННННННННННННННННННННННННННННННННННННННННј
			     Формат
				 ЪДДДДДДДДДДї
MOVSB/MOVSD/MOVSD		 і 1010010W і
				 АДДДДДДДДДДЩ
			    Функция
    DESTINATION 	  SOURCE		 (	    )
    (приемник)		(источник)		  операндов)
    IF (ADRESS SIZE=32)  THEN
       (размер адреса)
       (ADYUST ESIAND EDI;     (установка индексов для источника
					 и приемника)
ELSE				   (если размер адреса 16)
    ADYUST SI and DI
			    Описание
    Пересылает	операнды из строки памяти-источника в "строку па-
мяти" -  приемник.  Подразумевается,  что  строка  -  это  массив
байтов,  слов или двойных слов (в зависимости от размера операнда
в строке команды). После того,	как  пересылка	произведена,  ин-
дексные  регистры  источика ик приемника автоматически изменяются
(увеличиваются или уменьшаются, взависимости от DF) на	величину,
равную размеру операнда.
    Если размер адреса команды - двойное слово, то исходная стро-
ка  - [ESI], пока операнд-приемник есть ES: [EDI]. Иначе операнды
- [SI] и [DI]. Загрузка правильных значений индексов производится
перед выполнением команды MOVS'.
Пример
    MOVSD	      сравнивает байтовый операнд из строк байтов
			    или
REP MOVSD	      повторяет MOVS, пока не "кончится" ECX.
		      (см. стр. 457)
    Т.к. регистр источника и приемника должны быть загружены  для
использования этой команды, MOVS часто встречается в циклах и ис-
пользуется для выполнения нескольких операций.
Временные характеристики
    Без повторений: 7 ТИ; 0,35 мкс при 20 МГц
    С повторением:  1 4 n ТИ; (0,35 +0,2n мкс при 2 МГц
    (n - число выполняемых итераций)
Флаги
    Не устанавливаются.
Исключительные ситуации в реальном режиме
    Такие же, как при команде ADD.
Исключительные ситуации в защищенном режиме
    Такие же, как при команде ADD.
Исключительные ситуации в режиме виртуальной 8086"
    Такие же, как при команде ADD.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 289 -
      ЙНННННННННННННННННННННННННННННННННННННННННННННННННННН»
      єMOVSX	     Пересылка данных, с добавленным знакомє
      ИННННННННННННННННННННННННННННННННННННННННННННННННННННј
			     Формат
	   байт 0     байт 1		  байт 2
	 ЪДДДДДДДДДДВДДДДДДДДДДВДДДДДДДВДДДДДДДДДВДДДДДДДДДДї
	 і 00001111 і 1011111W і режим і регистр і регистр/ і
	 і	    і	       і       і	 і память   і
	 АДДДДДДДДДДБДДДДДДДДДДБДДДДДДДБДДДДДДДДДБДДДДДДДДДДЩ
			    Функция
    DESTINATION  SIGN - EXTEND (SOURCE BYTE)
    (приеминик)  (добавленный	 (исходный
		    знак)	   байт)
			    Описание
    Пересылает	исходный  операнд (байт в регистре или байт в па-
мяти) в приемник операнда размером слово или двойное  слово,  до-
полнив его знаком. Источник операнда остается без изменений, при-
емник операнда перезаписывается данными, расширенными знаком.
Пример
    MOVSX  ECX, DL	   ECT	получает байт, расширенный знаком
			   из DL
Временные характеристики
    Из регистра в регистр: 3ТИ; 0,15 мкс при 20 МГц
    Из памяти в регистр:   6 ТИ; 0,3 мкс при 20 МГц
Флаги
    Не устанавливаются.
Исключительные ситуации в реальном режиме
    Такие же, как при команде ADD.
Исключительные ситуации в защищенном режиме
    Такие же, как при команде ADD.
Исключительные ситуации в режиме "виртуальный 8086"
    Такие же, как при команде ADD.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 290 -
    ЙННННННННННННННННННННННННННННННННННННННННННННННННННННННН»
    єMOVZX		Пересылка данных с дополнением нулейє
    ИНННННННННННННННННННННННННННННННННННННННННННННННННННННННј
			     Формат
	байт 0	   байт 1
      ЪДДДДДДДДДДВДДДДДДДДДДВДДДДДДДВДДДДДДДДДВДДДДДДДДДДДДДДДДї
      і 00001111 і 1011011W і режим і регистр і регистр/память і
      АДДДДДДДДДДБДДДДДДДДДДБДДДДДДДБДДДДДДДДДБДДДДДДДДДДДДДДДДЩ
			    Функция
	    DESTINATION     ZERO-EXTEND (SOURCE BYTE)
	    (приемник)	    (расширение   (исходный
			      нулем)	    байт)
			    Описание
    Пересылает	из источника операнда (байт в регистре или байт в
памяти) в приемник операнда (слово или	двойное  слово)  операнд,
дополнив  его  нулем. Источник операнда остается без изменения, а
приемник перезаписывается исходными данными, расширенными нулем.
Пример
     MOVSX  EBX, BL    EBX получает байт из BL, расширенный нулем
Временные характеристики
     Пересылка из
		регистра в регистр  3ТИ; 0,15 мкс при 20 МГц
		из памяти в регистр 6ТИ; 0,3 мкс при 20 МГц
Флаги
    Не устанавливаются.
Исключительные ситуации в реальном режиме
    Такие же, как при команде ADD.
Исключительные ситуации в защищенном режиме
    Такие же, как при команде ADD.
Исключительные ситуации в режиме "виртуальный 8086"
    Такие же, как при команде ADD.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 291 -
	 ЙННННННННННННННННННННННННННННННННННННННННННННН»
	 єMUL		      Умножение без учета знакає
	 ИНННННННННННННННННННННННННННННННННННННННННННННј
			     Формат
	     байт 0	       байт 1
	   ЪДДДДДДДДДДВДДДДДДДВДДДДДВДДДДДДДДДДДДДДДДї
	   і 1111011W і режим і 110 і регистр/память і
	   АДДДДДДДДДДБДДДДДДДБДДДДДБДДДДДДДДДДДДДДДДЩ
			    Функция
       AL/AX/EAX      DESTINATION х SOURCE
		      (приемник)    (источник)
или
       AL/AX/EAX      DESTINATION х IMMEDIATE DATA
		      (приемник)    (непосредствен-
				      ные данные)
			    Описание
    MUL выполняет умножение без знака. Команды MUL использует ре-
гистр AL/AX/EAX как приемник результата и один сомножитель.
Пример
			 MUL   ECX  EDX
Если  ECX=00000034h и EDX=00000032h, то в результате выполнения
данной операции в ECX будет 000010A8h.
Временные характеристики
    MUL использует алгоритм (larby-finish) раннего окончания. Тре
буемое для завершения команды число циклов определяется позицией
знающего бита в оптимизируемом сомножителе.
Из регистра в AL/AX/EAX: 9-41 ТИ; 0,45-2,05 мкс при 20 МГц
Из памяти     AL/AX/EAX: 12-44 ТИ; 0,6-2,2 мкс при 20 МГц
Флаги
    OF и CF устанавливаются как описано в приложении А.
    SF, ZF, AF и PF не определены. Остальные флаги не изменяются.
Исключительные ситуации при реальном режиме
    Такие же, как при команде ADD.
Исключительные ситуации в защищенном режиме
    Такие же, как при команде ADD.
Исключительные ситуации в режиме "виртуальный 8086"
    Такие же, как при команде ADD.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 292 -
	   ЙНННННННННННННННННННННННННННННННННННННННННН»
	   єNEG 			Инвертированиеє
	   ИННННННННННННННННННННННННННННННННННННННННННј
			     Формат
		байт 0		    байт 1
	     ЪДДДДДДДДДДДВДДДДДДДВДДДДДВДДДДДДДДДДДДДДДДї
	     і	1111011W і режим і 011 і регистр/память і
	     АДДДДДДДДДДДБДДДДДДДБДДДДДБДДДДДДДДДДДДДДДДЩ
			    Функция
	    DESTINATION    0  - DESTENATION
	    (приемник)	  (0 -	приемник)
			    Описание
    Операнд инвертируется. Операнд используется как приемник
результата.
Пример		       NEG   EAX
    Если EAX=00000281h, то в результате  выполнения команды
EAX будет равно FFFFFD7Fh.
Временные характеристики
    Регистр-регистр    2 ТИ; 0,1 мкс при 20 МГц
    Регистр-память     7 ТИ; 0,35 мкс при 20 МГц
    Память-регистр     6 ТИ; 0,3 мкс при 20 МГц
    Непосредственные
    данные - регистр   2 ТИ; 0,1 мкс при 20 МГц
    Непосредственные
    данные - память    7 ТИ; 0,35 мкс при 20 МГц
Флаги
    OF, CF, SF, ZF, AF и PF устанавливаются, как показано в
приложении А. Остальные флаги не изменяются.
Исключительные ситуации в реальном режиме
    Такие же, как при команде ADD.
Исключительные ситуации в защищенном режиме
    Такие же, как при команде ADD.
Исключительные ситуации в режиме "виртуальный 8086"
    Такие же, как при команде ADD.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 293 -
	    ЙННННННННННННННННННННННННННННННННННННННН»
	    єNOP			Нет операцииє
	    ИНННННННННННННННННННННННННННННННННННННННј
			     Формат
			   ЪДДДДДДДДДДї
			   і 10010000 і
NOP			   АДДДДДДДДДДЩ
			    Функция
     EIP	     увеличивается для следующей команды
(счетчик команд)
			    Описание
    Команда  не  выполняет  никаких существенных функций. Счетчик
команд увеличивается для следующей команды. NOP - другая мнемони-
ка команды XCHG AX, AX.
Временные характеристики
		       ЗТИ; 0,15 мкс при 20 МГц
Флаги
    Не устанавливаются.
Исключительных ситуации в любом режиме нет.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 294 -
	 ЙНННННННННННННННННННННННННННННННННННННННННННННН»
	 єNOT			   Логическое дополнениеє
	 ИННННННННННННННННННННННННННННННННННННННННННННННј
			     Формат
	     ЪДДДДДДДДДДВДДДДДДДВДДДДДВДДДДДДДДДДДДДДДДї
NOT	     і 1111011W і режим і 010 і регистр/память і
	     АДДДДДДДДДДБДДДДДДДБДДДДДБДДДДДДДДДДДДДДДДЩ
			    Функция
		  DESTINAT FON	      DESTINATION
			    Описание
    Выполняет побитовое логическое дополнение  операнда.  Операнд
еще используется как приемник результата.
Пример
	   NOT	 ECX
    Если  ECX=90AD9034h, то в результате выполнения команды значе
ние
ECX будет 6F526FCDh.
Временные характеристики
    Регистр-регистр	2ТИ;   0,1 мкс при 20 МГц
    Регистр-память	7 ТИ;  0,35 мкс при 20 МГц
    Память-регистр	6 ТИ;  0,3 мкспри 20 МГц
    Непосредственные
    данные - регистр	2 ТИ;  0,1 мкс при 20 МГц
    Непосредственные
    данные - память	7 ТИ;,35 мкс при 20 МГц
Флаги
    OF=0;  CF=0;  SF, ZF и PF	уставливаются как описано в
приложении 2. Остальные флаги не устанавливаются.
Исключительные ситуации в реальном режиме
    Такие же, как при команде ADD.
Исключительные ситуации в защищенном режиме
    Такие же, как при команде ADD.
Исключительные ситуации в режиме "виртуальный 8086"
    Такие же, как при команде ADD.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 295 -
	   ЙНННННННННННННННННННННННННННННННННННННННННН»
	   єOR				Логическое ИЛИє
	   ИННННННННННННННННННННННННННННННННННННННННННј
			     Формат
		   байт 0	       байт 1
		ЪДДДДДДДДДДВДДДДДДДВДДДДДДДДДВДДДДДДДДДДДДДДДДї
регистр-регистр і 000010dW і режим і регистр і регистр/память і
		АДДДДДДДДДДБДДДДДДДБДДДДДДДДДБДДДДДДДДДДДДДДДДЩ
		ЪДДДДДДДДДДВДДДДДДДВДДДДДДДДДВДДДДДДДДДДДДДДДДї
регистр-память	і 0000100W і режим і регистр і регистр/память і
		АДДДДДДДДДДБДДДДДДДБДДДДДДДДДБДДДДДДДДДДДДДДДДЩ
		ЪДДДДДДДДДДВДДДДДДДВДДДДДДДДДВДДДДДДДДДДДДДДДДї
память/регистр	і 0000101W і режим і регистр і регистр/память і
		АДДДДДДДДДДБДДДДДДДБДДДДДДДДДБДДДДДДДДДДДДДДДДЩ
		ЪДДДДДДДДДДВДДДДДДДВДДДДДВДДДДДДДДДДї
Непосредствен-	і 100000SW і режим і 001 і регистр/ і  байты
ные данные -	і	   і	   і	 і память   і  данных
память-регистр	АДДДДДДДДДДБДДДДДДДБДДДДДБДДДДДДДДДДЩ
Непосредственные	 ЪДДДДДДДДДДї
данные - AL/AX/EAX	 і 0000110W і  байты
(короткое кодиро-	 АДДДДДДДДДДЩ  данных
вание)
			    Функция
	   DESTINATION	    DESTINATION  V  SOURCE
или
	   DESTINATION	    DESTINATION  V  IMMEDIATE DATA
			    Описание
    Выполняет  побитно	операцию  ИЛИ  над двумя операндами. Один
операнд еще используется как приемник результата.
Пример
	       OR   EBX, EDI
Если EBX=00AD9034h, EDI=03800052h,  то	в  результате  выполнения
этой команды будет EBX=OBAD9070h.
Временные характеристики
     Регистр-регистр	2 ТИ; 0,1 мкс при 20 МГц
     Регистр-память	7 ТИ; 0,355 мкс при 20 МГц
     Память-регистр	6 ТИ; 0,3 мкс при 20 МГц
     Непосредственные
     данные - регистр	2 ТИ; 0,1 мкс при 20 МГц
     Непосредственные
     данные - память	7 ТИ; 0,35 мкс при 20 МГц
Флаги
OF=0;  CF=0; SF, ZF и РФ устанавливаются как описано в приложении
А. Остальные флаги не устанавливаются.
Исключительные ситуации в реальном режиме
    Такие же, как при команде ADD.
Исключительные ситуации в защищенном режиме
    Такие же, как при команде ADD.
Исключительные ситуации в режиме "виртуальный 8086"
    Такие же, как при команде ADD.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 296 -
	       ЙННННННННННННННННННННННННННННННННН»
	       єOUT			    Выводє
	       ИНННННННННННННННННННННННННННННННННј
			     Формат
			       ЪДДДДДДДДДДї   8 битовый номер
Непосредственный порт (OO-FFh) і 1110010W і	   порта
			       АДДДДДДДДДДЩ
						ЪДДДДДДДДДДї
В порт, определяемый регистром DX (0000-FFFFh)	і 1110110В і
						АДДДДДДДДДДЩ
			    Функция
    DESTINATION      PORT  DX	      (выпод данных)
			    Описание
    Вывод операнда из AL/AX/EAX (в зависимости от размера операн-
да в команде байт, слово или двойное слово). Операнд передается в
порт, определяемый регистром DX или непосредственно в поле даных.
    Эта  команда  всегда доступна в реальном режиме. В защищенном
режиме эта команда доступна всегда, если CPL < IOPL. Если в защи-
щенном режиме CPL > IOPL, то карта разрешения ввода-вывода  опре-
деляет разрешена ли команда. Все действительные биты в карте раз-
решения  вводавывода  должны  быть установлены в 0 для выполнения
ввода-вывода. В режиме "виртуальный 8086" карта  разрешения  вво-
да-вывода определяет разрешена ли команда OUT.
OUT		 вывод операнда в порт, определяемый регистром DX
Временные характеристики
Реальный режим
Вывод  в порт, определяемый	   10 ТИ;     0,5 мкс при 20 МГц
непосредственно  полем	ко-
манды
Изменяемый порт 		   11ТИ;      0,55 мкс при 20 МГц
Защищенный режим CPL < IOPL
Вывод в порт, определяемый	   4 ТИ;      0,2 мкс при 20 МГц
непосредственно в поле
команды
Изменяемый порт 		   5 ТИ;      0,25 мкс при 20 МГц
Защищенный режим CPL > IOPL
Вывод в порт, определяемый	   24 ТИ;     1,2 мкс при 20 МГц
непосредственнов поле
команды
Изменяемый порт 		   25 ТИ;     1,25 мкс при 20 МГц
Режим "виртуальный 8086"
Вывод в порт, определяемый	   24 ТИ;     1,2 мкс при 20 МГц
непосредственно в поле
команды
Изменяемый порт 		   25 ТИ;     1,25 мкс при 20 МГц
			     Флаги
    Не устанавливаются.
Исключительные ситуации в реальном режиме
    Такие же, как при команде ADD.
Исключительные ситуации в защищеном режиме
    Если  CPL > IOPL, то карта разрешения ввода-вывода должна до-
пускать ввод-вывод во все байтовые порты.
Исключительные ситуации в режиме "виртуальный 8086"
    Карта разрешения ввода-вывода должна допускать ввод-вывод  на
все  байтовые  порты. Остальные исключительные ситуации такие же,
как при команде ADD.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
			    - 297 -
	ЙННННННННННННННННННННННННННННННННННННННННННННННН»
	єOUTSB/OUTSW/OUTSD	     Вывод строки данныхє
	ИНННННННННННННННННННННННННННННННННННННННННННННННј
			     Формат
			       ЪДДДДДДДДДДї
			       і 0110111W і
			       АДДДДДДДДДДЩ
			    Функция
	PORT DX     SOURCE		 вывод данных
	IF (ADRESS SIZE = 32) THEN	 изменение индекса источ-
					 ника операнда
	ADYUST EST
ELSE
	ADYUST SI			 address size = 16
					 (размер адреса)
			    Описание
    Выводит операнд из "строки памяти" - источника в порт,  опре-
деляемый регистром DX, подразумевается, что строка-источник явля-
ется  массивом	байтов, слов или двойных слов - (в зависимости от
размера операнда в строке команды). После того, как вывод  сделан
индекс	источника  автоматически  изменяется  (увеличивается  или
уменьшается согласно DF) на величину, равную размеру операнда.
    Если размер адреса команды - двойное слово, то операнд "стро-
ка-источник" - [ESI]. Иначе, операнд [SI].  Загрузка  правильного
значения индекса производится перед выполнением OUTS.
Пример
    OUTSD			   вывод двойного слова в порт DX
или
    REP  OUTSD			   повторение OUTS до тех пор,по-
				   ка не "кончиться" ECX
				   (см. стр. 457)
Т.к. регистр индекса источника должнен быть загружен при выполне-
нии этой команды, от OUTSD/W/D часто встречается в циклах или ис-
пользуется для нескольких итерации.
Временные характеристики
Реальный режим
Без повторений		   14 ТИ;   0,7 мкс при 20 МГц
С повторениями		   12+5n ТИ; (0,6 + 0,25n) мкс при 20 МГц
Защищенный режим	 CPL < IOPL
Без повторений	   8 ТИ;       0,4 мкс при 20 МГц
С повторениями	   6+5n;       (0,3 + 0,25 n) мкс при 20 МГц
Защищенный режим	 CPL > IOPL
Без повторений	   28 ТИ;      1,4 мкс при 20 МГц
С повторениями	   26 + 5n ТИ; (1,3 + 0,25n) мкс при 20 МГц
Режим "виртуальный 8086"
Без повторений	   28 ТИ;      1,4 мкс при 20 МГц
С повторениями	   26 + Sn TI; (1,3 + 0,25n) мкс при 20 МГц
		   (n - число выполняемых итераций)
Флаги
    Не устанавливается.
Исполнительные ситуации в реальном режиме
    Такие же, как при команде ADD.
Исполнительные ситуации в защищенном режиме
    Если  CPL > IOPL, то карта разрешения ввода-вывода должна до-
пустить ввод-вывод ко всем байтовым  портам.  Остальные  исключи-
тельные ситуации - такие же, как при команде ADD.
Исключительные ситуации в режиме "виртуальный 8086"
    Карта  разрешения ввода-вывода должна допустить ввод-вывод ко
всем байтовым портам. Остальные исключительные ситуации такие же,
как при команде ADD.


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