Арифметические команды
Команды сравнения данных
Эти команды выполняют сравнение содержимого вершины стека с указанным в команде операндом.
Вещественные числа
Команда | Описание |
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). |
Вспомогательные команды