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


http://spring72.ru/ приспособление для сжатия тормозных пружин Тюмень.

 

Часть 30

CWD/CDQ - Преобразование слова в двойное слова/
          Преобразование двойного слова в учетверенное слово
-----------------------------------------------------------------
|Код       Команда  Число      Описание                         |
|операции           тактовых                                    |
|                   циклов                                      |
|                                                               |
| 99       CWD        3        DX:AX <- расширение знаком AX    |
| 99       CDQ        3        EDX:EAX <- расширение знаком EAX |
-----------------------------------------------------------------
Работа команды
--------------
IF OperandSize = 16 (* команда CWD *)
THEN
  IF AX < 0 THEN DX <- 0FFFFH; ELSE DX <- 0; FI;
ELSE (* OperandSize = 32, команда CDQ *)
  IF EAX < 0 THEN EDX <- 0FFFFFFFFH; ELSE EDX <- 0; FI;
FI;
Описание
--------
Команда CWD преобразует имеющее знак слово в регистре AX в
имеющее знак двойное слово в паре регистров DX:AX, расширяя
старший бит регистра AX во все биты регистра DX. Команда CDQ
преобразует имеющее знак двойное слово из регистра EAX в имеющее
знак 64-разрядное целое в паре регистров EDX:EAX, расширяя
старший бит регистра EAX (знакового бита) во все биты регистра
EDX. Отметим, что команда CWD отличается от команды CWDE.
Команда CWDE использует как назначение регистр EAX, вместо пары
регистров DX:AX.
Изменяемые флаги
----------------
     Отсутствуют
Исключения защищенного режима
----------------------------------
     Отсутствуют
Исключения режима реальных адресов
---------------------------------------
     Отсутствуют
Исключения виртуального режима 8086
----------------------------------------
     Отсутствуют
-----------------------------------------------------------------
DAA - Десятичное преобразование AL после сложения
-----------------------------------------------------------------
|Код       Команда  Число      Описание                         |
|операции           тактовых                                    |
|                   циклов                                      |
|                                                               |
| 27       DAA        2        Десятичное преобразование AL     |
|                              после сложения                   |
-----------------------------------------------------------------
Работа команды
--------------
IF ((AL AND 0FH) > 9) OR (AF = 1)
THEN
  AL <- AL + 6;
  AF <- 1;
ELSE
  AF <- 0;
FI;
IF (AL > 9FH) OR (CF = 1)
THEN
  AL <- AL + 60H;
  CF <- 1;
ELSE CF <- 0;
FI;
Описание
--------
Команда DAA выполняется только после команды ADD, которая
оставляет в регистре AL результат, представляющий собой байт, в
котором содержатся две двоично-десятичные цифры. Операнды ADD
должны состоять из двух упакованных двоично-десятичных цифр.
Команда DAA преобразует регистр AL таким образом, чтобы он
содержал правильный двузначный упакованный десятичный
результат.
Изменяемые флаги
----------------
Флаги AF и CF устанавливаются при наличии десятичного переноса и
очищаются при его отсутствии; флаги SF, ZF, PF и CF
устанавливаются в соответствии с результатом.
Исключения защищенного режима
----------------------------------
     Отсутствуют
Исключения режима реальных адресов
---------------------------------------
     Отсутствуют
Исключения виртуального режима 8086
----------------------------------------
     Отсутствуют
-----------------------------------------------------------------
DAS - Десятичное преобразование AL после вычитания
-----------------------------------------------------------------
|Код       Команда  Число      Описание                         |
|операции           тактовых                                    |
|                   циклов                                      |
|                                                               |
| 2F       DAS        2        Десятичное преобразование AL     |
|                              после вычитания                  |
-----------------------------------------------------------------
Работа команды
--------------
IF ((AL AND 0FH) > 9) OR  AF = 1
THEN
  AL <- AL - 6;
  AF <- 1;
ELSE
  AF <- 0;
FI;
IF (AL > 9FH) OR (CF = 1)
THEN
  AL <- AL - 60H;
  CF <- 1;
ELSE CF <- 0;
FI;
Описание
--------
Команда DAS выполняется только после команды вычитания, которая
оставляет в регистре AL результат, представляющий собой байт, в
котором содержатся две двоично-десятичные цифры. Операнды должны
состоять из двух упакованных двоично-десятичных цифр. Команда
DAS преобразует регистр AL таким образом, чтобы он содержал
правильный двузначный упакованный десятичный результат.
Изменяемые флаги
----------------
Флаги AF и CF устанавливаются при наличии десятичного переноса и
очищаются при его отсутствии; флаги SF, ZF, PF и CF
устанавливаются в соответствии с результатом.
Исключения защищенного режима
----------------------------------
     Отсутствуют
Исключения режима реальных адресов
---------------------------------------
     Отсутствуют
Исключения виртуального режима 8086
----------------------------------------
     Отсутствуют
-----------------------------------------------------------------
DEC - Декремент на 1
-----------------------------------------------------------------
|Код       Команда  Число      Описание                         |
|операции           тактовых                                    |
|                   циклов                                      |
|                                                               |
|FE /1     DEC r/m8  1/3       Декремент байта r/m на 1         |
|FF /1     DEC r/m16 1/3       Декремент слова r/m на 1         |
|          DEC r/m32 1/3       Декремент двойного слова r/m на 1|
|48 + rw   DEC r16   1         Декремент слова в регистре на 1  |
|48 + rd   DEC r32   1         Декремент двойного слова         |
|                              в регистре на 1                  |
-----------------------------------------------------------------
Работа команды
--------------
DEST <- DEST - 1;
Описание
--------
Команда DEC вычитает 1 из операнда. Команда DEC не изменяет
флага CF. Для воздействия на флаг CF используйте команду SUB с
непосредственным операндом, равным 1.
Изменяемые флаги
----------------
Флаги OF, SF, ZF, AF и PF устанавливаются в соответствии с
результатом.
Исключения защищенного режима
----------------------------------
#GP(0), если результат должен помещаться в сегмент, для которого
запрещена запись; #GP(0) в случае недопустимого исполнительного
адреса операнда памяти в сегментах CS, DS, ES, FS или GS; #SS(0)
в случае недопустимого адреса в сегменте SS; #PF(код сбоя) в
случае страничного сбоя; #AC для невыравненной ссылки к памяти
при текущем уровне привилегированности, равном 3.
Исключения режима реальных адресов
---------------------------------------
Прерывание 13, если какая-либо часть операнда лежит вне
пространства исполнительных адресов от 0 до 0FFFFH.
Исключения виртуального режима 8086
----------------------------------------
Те же исключения, что и для режима реальных адресов: #PF (код
сбоя) для страничных сбоев; #AC для невыравненной ссылки к
памяти при текущем уровне привилегированности, равном 3.
DIV - Деление без знака
-----------------------------------------------------------------
|Код       Команда  Число      Описание                         |
|операции           тактовых                                    |
|                   циклов                                      |
|                                                               |
|F6 /6     DIV AL,r/m8  16/16  Деление без знака AX на байт r/m |
|                              (AL=частное, AH=остаток)         |
|F7 /6     DIV AX,r/m16 24/24  Деление без знака DX:AX на слово |
|                              r/m (AX=частное, DX = остаток)   |
|F7 /6    DIV EAX,r/m32 40/40  Деление без знака EDX:EAX на     |
|                              двойное слово r/m                |
|                              (EAX=частное,EDX = остаток)      |
-----------------------------------------------------------------
Работа команды
--------------
врем <- делимое / делитель;
IF врем не помещается в частном
THEN Прерывание 0;
ELSE
  частное <- врем;
  остаток <- делимое MOD (r/m);
FI;
Замечание: деление без знака. Делитель задается в операнде r/m.
Делимое, частное и остаток используют неявно задаваемые
регистры. См. таблицу в параграфе "Описание".
Описание
--------
Команда DIV выполняет деление без знака. Делимое задается
неявно: в качестве операнда задается только делитель. Остаток
всегда меньше делителя. Тип делителя определяет используемые
регистры следующим образом:
-----------------------------------------------------------------
  Размер      Делитель      Частное      Остаток      Делимое
-----------------------------------------------------------------
  байт        AX            r/m8         AL           AH
  слово       DX:AX         r/m16        AX           DX
  двойное
  слово       EDX:EAX       r/m32        EAX          EDX
-----------------------------------------------------------------
Изменяемые флаги
----------------
Флаги OF, SF, ZF, AF, PF, CF не определены.
Исключения защищенного режима
----------------------------------
Прерывание 0, если частное слишком велико для назначенного для
него регистра (AL, AX или EAX), или если делитель равен 0;
#GP(0) в случае недопустимого исполнительного адреса операнда
памяти в сегментах CS, DS, ES, FS или GS; #SS(0) в случае
недопустимого адреса в сегменте SS; #PF(код сбоя) в случае
страничного сбоя; #AC для невыравненной ссылки к памяти при
текущем уровне привилегированности, равном 3.
Исключения режима реальных адресов
---------------------------------------
Прерывание 0, если частное слишком велико для назначенного для
него регистра (AL, AX или EAX), или если делитель равен 0;
Прерывание 13, если какая-либо часть операнда лежит вне
пространства исполнительных адресов от 0 до 0FFFFH.
Исключения виртуального режима 8086
----------------------------------------
Те же исключения, что и для режима реальных адресов: #PF (код
сбоя) для страничных сбоев; #AC для невыравненной ссылки к
памяти при текущем уровне привилегированности, равном 3.
ENTER - Создание кадра стека для параметров процедуры
-----------------------------------------------------------------
|Код       Команда  Число      Описание                         |
|операции           тактовых                                    |
|                   циклов                                      |
|                                                               |
|C8 iw 00 ENTER imm16,0  14    Создание кадра стека             |
|                              процедуры                        |
|C8 iw 01 ENTER imm16,1  17    Создание кадра стека             |
|                              для параметров процедуры         |
|C8 iw ib ENTER imm16,  17+3n  Создание кадра стека             |
|               imm8           для параметров процедуры         |
-----------------------------------------------------------------
Работа команды
--------------
уровень <- уровень MOD 32
IF OperandSize = 16 THEN Push(BP) ELSE Push(EBP) FI;
  (* Сохранить указатель стека *)
указатель-стека <- eSP
IF уровень > 0
THEN (* уровень это крайний правый параметр *)
  FOR i <- 1 TO уровень - 1
  DO
    IF OperandSize = 16
    THEN
      BP <- BP -2;
      Push[BP]
    ELSE (* OperandSize = 32 *)
      EBP <- EBP - 4;
      Push[EBP];
    FI;
  OD;
  Push(указатель-стека)
FI;
IF OperandSize  =  16  THEN  BP  <-  указатель-стека  ELSE EBP <-
                                           указатель-стека; FI;
IF StackAddrSize = 16 (* Размер адреса стека = 16 *)
THEN SP <- SP - Первый операнд;
ELSE ESP <- ESP - ZeroExtend(Первый операнд); (* Расширение нулем
*)
FI;
Описание
--------
Команда ENTER создает кадр стека, требуемый для большинства
языков высокого уровня блочной структуры. Первый операнд задает
число байтов динамической памяти, распределяемой в стеке при
вхождении в подпрограмму. Второй операнд задает уровень
лексической вложенности ( от 0 до 31) подпрограммы в исходном
коде языка высокого уровня. Он определяет число указателей
кадра стека, копируемых в новый кадра стека из предыдущего.
Регистр BP (или EBP, если атрибут размера операнда равен 32
битам) это указатель текущего кадра стека.
Если атрибут размера операнда равен 16 битам, процессор
использует регистр BP в качестве указателя кадра и регистр SP в
качестве указателя стека. Если атрибут размера операнда равен 32
битам, то процессор использует регистр EBP в качестве указателя
кадра и регистр ESP в качестве указателя стека.
Если второй операнд равен 0, то команда ENTER помещает в стек
указатель кадра (регистр BP или EBP); затем команда ENTER
вычитает первый операнд из указателя стека и устанавливает
указатель кадра равным текущему значению указателя стека.
Например, процедура с 12 байтами локальных переменных в точке
входа должна иметь команду ENTER 12,0 и команду LEAVE перед
каждой командой RET. 12 локальных байтов должны адресоваться как
негативные смещения относительно указателя кадра.
Изменяемые флаги
----------------
     Отсутствуют
Исключения защищенного режима
----------------------------------
#SS(0), если значение SP или ESP превысит границу стека в любой
точке выполнения команды; #PF(код сбоя) в случае страничного
сбоя;
Исключения режима реальных адресов
---------------------------------------
     Отсутствуют
Исключения виртуального режима 8086
----------------------------------------
     Отсутствует
-----------------------------------------------------------------
                    x
F2XM1 - Вычисление 2 - 1
-----------------------------------------------------------------
|Код       Команда  Число      Описание                         |
|операции           тактовых                                    |
|                   циклов                                      |
|                                                ST             |
|D9 F0    F2XM1    242(140-279) Заменяет ST на (2  - 1)         |
-----------------------------------------------------------------
Работа команды
--------------
        ST
ST <- (2  - 1);
Описание
--------
                                          ST
Команда F2XM1 заменяет содержимое ST на (2 - 1). ST должен
находиться в диапазоне -1 < ST < 1.
Изменяемые флаги модуля операций с плавающей точкой
---------------------------------------------------
C1, как описано в Таблице 15-1; C0, C2, C3 не определены.
Исключения числовых операций
---------------------------------
P, U, D, I, IS
Исключения защищенного режима
----------------------------------
#NM при установленном EM или TS в CR0.
Исключения режима реальных адресов
---------------------------------------
Прерывание 7 при установленном EM или TS в CR0.
Исключения виртуального режима 8086
----------------------------------------
#NM при установленном EM или TS в CR0.
Примечания
----------
Если операнд находится вне допустимого диапазона, то результат
F2XM1 неопределен.
Команда F2XM1 предназначениа для получения очень точного
результата, даже когда операнд близок к нулю. Для операндов с
абсолютной величиной очень близкой к 1 образуются большие
значения погрешности.
Значения, не равные 2, могут возводиться в степень по формуле:
      y      (y x log x)
     X   = 2         2
Команды FLDL2T и FLDL2E загружают константы log 10 и log e,
                                               2        2
соответственно. FYL2X может быть использована для вычисления
y x log x для произвольного положительного x.
       2
-----------------------------------------------------------------
FABS - Абсолютное значение
-----------------------------------------------------------------
|Код       Команда  Число      Описание                         |
|операции           тактовых                                    |
|                   циклов                                      |
|                                                               |
|D9 E1    FABS         3        Заменяет ST на его абсолютное   |
|                               значение                        |
-----------------------------------------------------------------
Работа команды
--------------
знаковый бит ST <- 0
Описание
--------
Команда абсолютного значения FABS очищает знаковый бит ST.
Операция оставляет положительное значение без изменений, либо
заменяет отрицательное значение положительным, равным по
абсолютной величине.
Изменяемые флаги модуля операций с плавающей точкой
---------------------------------------------------
C1, как описано в таблице 15-1; C0, C2, C3 не определены.
Исключения числовых операций
---------------------------------
     IS
Исключения защищенного режима
----------------------------------
#NM при установленном EM или TS в CR0.
Исключения режима реальных адресов
---------------------------------------
Прерывание 7 при установленном EM или TS в CR0.
Исключения виртуального режима 8086
----------------------------------------
#NM при установленном EM или TS в CR0.
Примечания
----------
Исключение неверной операции возникает только при потере
значимости стека, даже если операнд сообщает о NaN или имеет
неподдерживаемый формат.
-----------------------------------------------------------------
FADD/FADDP/FIADD - Сложение
-----------------------------------------------------------------
|Код          Команда  Число     Парал-  Описание               |
|операции              тактовых  лельное                        |
|                      циклов    выпол-                         |
|                                нение                          |
|D8 /0   FADD m32real   10(8-20)  7(5-17) Сложение m32real с ST |
|DC /0   FADD m64real   10(8-20)  7(5-17) Сложение m64real с ST |
|D8 C0+i FADD ST,ST(i)  10(8-20)  7(5-17) Сложение ST(i)с  ST   |
|DC C0+i FADD ST(i),ST  10(8-20)  7(5-17) Сложение ST с ST(i)   |
|DE C0+i FADDP ST(i),ST 10(8-20)  7(5-17) Сложение ST с ST(i) и |
|                                         извлечение из стека ST|
|DE C1   FADD           10(8-20)  7(5-17) Сложение ST с ST(1) и |
|                                         извлечение из стека ST|
|DA /0  FIADD m32int  22.5(19-32) 7(5-17) Сложение m32int  с ST |
|DE /0  FIADD m16int   24(20-35)  7(5-17) Сложение m16int  с ST |
-----------------------------------------------------------------
Работа команды
--------------
DEST <- DEST + SRC;
IF команда = FADDP THEN извлечение из стека ST  FI;
Описание
--------
Команды сложения складывают операнды источника и назначения и
возвращают сумму в операнд назначения. Операнд в вершине стека
может быть удвоен кодированием:
FADD ST, ST(0)
Изменяемые флаги модуля операций с плавающей точкой
---------------------------------------------------
C1, как описано в таблице 15-1; C0, C2, C3 не определены.
Исключения числовых операций
---------------------------------
P, U, O, D, I, IS
Исключения защищенного режима
----------------------------------
#GP(0) в случае недопустимого исполнительного адреса операнда
памяти в сегментах CS, DS, ES, FS или GS; #SS(0) в случае
недопустимого адреса в сегменте SS; #PF(код сбоя) в случае
страничного сбоя; #NM при установленном EM или TS в CR0; #AC для
невыравненной ссылки к памяти при текущем уровне
привилегированности, равном 3.
Исключения режима реальных адресов
---------------------------------------
Прерывание 13, если какая-либо часть операнда лежит вне
пространства исполнительных адресов от 0 до 0FFFFH; Прерывание 7
при установленном EM или TS в CR0.
Исключения виртуального режима 8086
----------------------------------------
Те же исключения, что и для режима реальных адресов: #PF (код
сбоя) для страничных сбоев; #AC для невыравненной ссылки к
памяти при текущем уровне привилегированности, равном 3.
Примечания
----------
Если исходный операнд находится в памяти, он автоматически
преобразовывается в расширенный действительный формат.
-----------------------------------------------------------------
FBLD - Загрузка двоично-кодированного десятичного
-----------------------------------------------------------------
|Код          Команда  Число     Парал-     Описание            |
|операции              тактовых  лельное                        |
|                      циклов    выпол-                         |
|                                нение                          |
|                                                               |
|D8 /4      FBLD m80dec 75(70-103) 7.7(2-8) Помещение в стек FPU|
|                                           m80dec              |
-----------------------------------------------------------------
Работа команды
--------------
Декремент указателя вершины стека модуля с плавающей точкой (FPU)
ST(0) <- SRC;
Описание
--------
FBLD преобразует двоично-десятичный операнд-источник в
расширенный действительный формат и помещает его в стек FPU.
Структура двоично-десятичных данных показана на Рисунке 15-10.
Изменяемые флаги модуля операций с плавающей точкой
---------------------------------------------------
C1, как описано в таблице 15-1; C0, C2, C3 не определены.
Исключения числовых операций
---------------------------------
IS
Исключения защищенного режима
----------------------------------
#GP(0) в случае недопустимого исполнительного адреса операнда
памяти в сегментах CS, DS, ES, FS или GS; #SS(0) в случае
недопустимого адреса в сегменте SS; #PF(код сбоя) в случае
страничного сбоя; #NM при установленном EM или TS в CR0; #AC для
невыравненной ссылки к памяти при текущем уровне
привилегированности, равном 3.
Исключения режима реальных адресов
---------------------------------------
Прерывание 13, если какая-либо часть операнда лежит вне
пространства исполнительных адресов от 0 до 0FFFFH; Прерывание 7
при установленном EM или TS в CR0.
Исключения виртуального режима 8086
----------------------------------------
Те же исключения, что и для режима реальных адресов: #PF (код
сбоя) для страничных сбоев; #AC для невыравненной ссылки к
памяти при текущем уровне привилегированности, равном 3.
Примечания
----------
Источник загружается без ошибки округления. Знак источника
сохраняется, включая случай, когда значение представляет собой
отрицательный ноль.
Упакованные десятичные цифры предполагаются принадлежащими
диапазону 0 - 9. Команда не проверяет наличия недопустимых цифр
(A-FH), и результат попытки загрузки при неверном кодировании
неопределен.
ST(7) должен быть пустым, чтобы избежать исключения неверной
операции.
-----------------------------------------------------------------
FBSTR - Сохранить двоично-кодированное десятичное и выполнить
        извлечение из стека
-----------------------------------------------------------------
|Код          Команда  Число      Описание                      |
|операции              тактовых                                 |
|                      циклов                                   |
|                                                               |
|                                                               |
|D8 /6     FBSTR m80dec 175        Сохранение ST в m80dec и     |
|                       (172-176)  извлечение из стека ST       |
-----------------------------------------------------------------
Работа команды
--------------
DEST <- ST(0);
извлечение из стека ST;  FI;
Описание
--------
Команда FBSTR преобразует значение в ST в упакованное десятичное
целое, сохраняет результат в операнд назначения в памяти и
выполняет извлечение из стека ST. Не-целочисленные значения
сначала округляются в соответствии с полем RC управляющего
слова. Структура двоично-десятичных данных показана на
Рисунке 15-10.
Изменяемые флаги модуля операций с плавающей точкой
---------------------------------------------------
C1, как описано в Таблице 15-1; C0, C2, C3 не определены.
Исключения числовых операций
---------------------------------
     P, I, IS
Исключения защищенного режима
----------------------------------
#GP(0), если результат должен помещаться в сегмент, для которого
запрещена запись; #GP(0) в случае недопустимого исполнительного
адреса операнда памяти в сегментах CS, DS, ES, FS или GS; #SS(0)
в случае недопустимого адреса в сегменте SS; #PF(код сбоя) в
случае страничного сбоя; #NM при установленном EM или TS в CR0;
#AC для невыравненной ссылки к памяти при текущем уровне
привилегированности, равном 3.
Исключения режима реальных адресов
---------------------------------------
Прерывание 13, если какая-либо часть операнда лежит вне
пространства исполнительных адресов от 0 до 0FFFFH; Прерывание 7
при установленном EM или TS в CR0.
Исключения виртуального режима 8086
----------------------------------------
Те же исключения, что и для режима реальных адресов: #PF (код
сбоя) для страничных сбоев; #AC для невыравненной ссылки к
памяти при текущем уровне привилегированности, равном 3.
-----------------------------------------------------------------
FCHS - Изменение знака
-----------------------------------------------------------------
|Код       Команда  Число      Описание                         |
|операции           тактовых                                    |
|                   циклов                                      |
|                                                               |
|D9 E0    FCHS         6        Заменяет ST на его же значение, |
|                               но с противоположным знаком     |
-----------------------------------------------------------------
Работа команды
--------------
знаковый бит ST <- NOT (знаковый бит в ST)
Описание
--------
Команда изменение знака FCHS меняет на противоположный знак ST.
Эта операция заменяет положительное значение на отрицательное
при той же абсолютной величине, и наоборот.
Изменяемые флаги модуля операций с плавающей точкой
---------------------------------------------------
C1, как описано в Таблице 15-1; C0, C2, C3 не определены.
Исключения числовых операций
---------------------------------
     IS
Исключения защищенного режима
----------------------------------
#NM при установленном EM или TS в CR0.
Исключения режима реальных адресов
---------------------------------------
Прерывание 7 при установленном EM или TS в CR0.
Исключения виртуального режима 8086
----------------------------------------
#NM при установленном EM или TS в CR0.
Примечания
----------
Исключение неверной операции возникает только при потере
значимости стека, даже если операнд сообщает о NaN или имеет
неподдерживаемый формат.
-----------------------------------------------------------------
FCLEX/FNCLEX - Очистить исключения
-----------------------------------------------------------------
|Код       Команда  Число      Описание                         |
|операции           тактовых                                    |
|                   циклов                                      |
|                                                               |
|DB DB E2  FCLEX  7+минимум 3  Очищает флаги исключения         |
|                 для FWAIT    после проверки условий ошибки    |
|                              с плавающей точкой               |
|DB E2    FNCLEX  7            Очищает флаги исключения         |
|                              без   проверки условий ошибки    |
|                              с плавающей точкой               |
-----------------------------------------------------------------
Работа команды
--------------
SW[0..7] <- 0;
SW[15] <- 0;
Описание
--------
FCLEX очищает флаги исключений, флаг состояния исключения и флаг
Занят в слове состояния FPU.
Изменяемые флаги модуля операций с плавающей точкой
---------------------------------------------------
C0, C2, C3 не определены.
Исключения числовых операций
---------------------------------
Отсутствуют
Исключения защищенного режима
----------------------------------
#NM при установленном EM или TS в CR0.
Исключения режима реальных адресов
---------------------------------------
Прерывание 7 при установленном EM или TS в CR0.
Исключения виртуального режима 8086
----------------------------------------
#NM при установленном EM или TS в CR0.
Примечания
----------
FCLEX проверяет условия немаскируемых ошибок операций с
плавающей точкой перед тем, как будут очищены флаги исключений;
команда FNCLEX этого не делает.
-----------------------------------------------------------------


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