Команды сравнения данных
Эти команды выполняют сравнение содержимого вершины стека с указанным в команде операндом.
Вещественные числа
| Команда | Описание |
| FCOM | Floating-point COMpare Сравнение вещественных чисел ST(0) и ST(1). Флаги устанавливаются, как при операции ST(0)-ST(1). |
| FCOM источник | Floating-point COMpare Сравнение ST(0) с операндом в памяти. Операнд может быть 32- или 64-битным. |
| FCOMP источник | Floating-point COMpare and Pop Сравнение вещественного числа в ST(0) с операндом с выталкиванием ST(0) из стека. Операнд может быть регистром и областью памяти. |
| FCOMPP источник | Floating-point COMpare and Pop fnd Pop Сравнение вещественного числа в ST(0) с операндом с двойным выталкиванием ST(0) и ST(1) из стека. Операнд может быть регистром и областью памяти. |
| FUCOMP ST(i) | Floating-point Unorder COMpare and Pop Сравнение ST(0) с ST(i) без учета порядков. При выполнении операции происходит выталкивание из стека. |
| FUCOMPP ST(i) | Floating-point Unorder COMpare and Pop and Pop Сравнение ST(0) с ST(i) без учета порядков. При выполнении операции происходит двойное выталкивание из стека. |
Целые числа
| Команда | Описание |
| FICOM источник | Floating-point Integer COMpare Сравнение целых чисел в ST(0) с операндом. Операнд может быть 16- или 32-битным. |
| FICOMP источник | Floating-point Integer COMpare and Pop Сравнение целых чисел в ST(0) с операндом. Операнд может быть 16- или 32-битной областью памяти или регистром. При выполнении операции происходит выталкивание ST(0) из стека. |
Анализ
| Команда | Описание |
| FTST | Floating-point TeST zero Проверка ST(0) на нуль. |
| FXAM | Floating-point eXAMine Анализ содержимого вершины стека. Результат помещается в биты С3-С0 регистра CWR: · Знак =.> бит C1, · c3c2c0 = 000 - неподдерживаемый формат. · c3c2c0 = 001 - не число. · c3c2c0 = 010 - нормализованное число. · c3c2c0 = 011 - бесконечность. · c3c2c0 = 100 – нуль · c3c2c0 = 101 - пустой операнд. · c3c2c0 = 110 - денормализованное число. |
В группу арифметических команд входят команды, реализующие операции сложения, вычитания, умножения и деления. Арифметические команды можно разделить на две подгруппы:
· для работы с целочисленными операндами.
· для работы с вещественными операндами.
Команды для работы с вещественными операндами
| Команда | Описание |
| FADD источник FADD ST(i),ST(0) | Floating-point ADDition Сложение. · ST(0) = ST(0) + источник (32- или 64-битное число). · ST(i) = ST(i) + ST(0) |
| FADDP ST(i),ST(0) | Floating-point ADDition and Pop Сложение. ST(i) = ST(i) + ST(0). Выталкивание из стека ST(0). |
| FSUB источник FSUB ST(i),ST(0) | Floating-point SUBtraction Вычитание. · ST(0) = ST(0) - источник (32- или 64-битное число). · ST(i) = ST(i) - ST(0). |
| Floating-point SUBtraction Вычитание. ST(i) = ST(i) - ST(0). | |
| FSUBP ST(i),ST(0) | Floating-point SUBtraction and Pop Вычитание. ST(i) = ST(i) - ST(0). Выталкивание из стека ST(0). |
| FSUBR ST(i),ST(0) | Floating-point SUBtracttion Revers Обратное вычитание. ST(0) = ST(i) - ST(0) |
| FSUBRP ST(i),ST(0) | Floating-point SUBtracttion Revers and Pop Обратное вычитание ST(0). ST(0) = ST(i) - ST(0). Выталкивание из стека ST(0). |
| FMUL FMUL ST(i) FMUL ST(i),ST | Floating-point MULtiplay with real value Умножение: · ST(0) = ST(0) * ST(1) · ST(0) = ST(i) * ST(0) · ST(i) = ST(i) * ST(0). |
| FMULP ST(i),ST(0) | Floating-point MULtiplay and Pop Умножение. ST(i) = ST(i) * ST(0) |
| FDIV FDIV ST(i) FDIV ST(i),SY | Floating-point DIVide Деление двух вещественных чисел.: · ST(0) = ST(0) / ST(1) · ST(0) = ST(0) / ST(i) · ST(i) = ST(0) / ST(i) |
| FDIVP ST(i),ST(0) | Floating-point DIVide and Pop Деление. ST(i)<-ST(0)/ST(i). Выталкивание из стека ST(0). |
| FDIVR ST(i),ST(0) | Floating-point DIVide Revers Обратное деление. ST(0) = ST(i) / ST(0) |
| FDIVRP ST(i),ST(0) | Floating-point DIVide Revers and Pop Обратное деление ST(0) = ST(i) / ST(0) Выталкивание из стека ST(0). |
Команды для работы с целочисленными операндами
| Команда | Описание |
| FIADD источник | Floating-point Integer ADDition Сложение. ST(0) = ST(0) + источник (16- или 32-битное число). |
| FISUB источник | Floating-point Integer SUBtracttion Вычитание. ST(0) = ST(0) - источник (16- или 32-битное число). |
| FISUBR источник | Floating-point Integer SUBtracttion Revers Вычитание. ST(0) = источник (16- или 32-битное число) -.ST(0) |
| FIMUL источник | Floating-point Integer MULtiply Умножение. ST(0) = ST(0) * источник (16- или 32-битное число). |
| FIDIV источник | Floating-point Integer DIVide Деление. ST(0) = ST(0) / источник (16- или 32-битное число). |
| FIDIVR источник | Floating-point Integer DIVide Revers Обратное деление целых чисел. ST(0) = источник / ST(0). |
Вспомогательные команды
| Команда | Описание |
| FABS | Floating-point ABSolute value Нахождение абсолютного значения. ST(0) = ABS(ST(0)). |
| FCHS | Floating-point CHange Sign Изменение знака ST(0) = -ST(0). |
| FSQRT | Floating-point calculation of SQuare Root Извлечь квадратный корень из ST(0) и поместить обратно. Исходный операнд предварительно должен быть занесен в стек ST(0) = X. |
| FSCALE | Floating-point SCALE. Масштабирование. Умножение X на 2 в степени Y. Исходные операнды предварительно должны быть занесены в стек ST(0) = X, ST(1) = Y. ST(0) = ST(0) * 2^ST(1). |
| FPREM | Floating-point Partial REMinder Нахождение частичного остатка от деления ST(0) на ST(1). |
| FPREM1 | Floating-point Partial REMinder IEEE-754 Нахождение частичного остатка от деления ST(0) на ST(1) (в стандарте IEEE). |
| FRNDINT | Floating-point RouND INTeger Округление до ближайшего целого числа, находящегося в ST(0). ST(0) = int(ST(0)). |






