Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛК_МашЗавЯП_А4.doc
Скачиваний:
157
Добавлен:
10.06.2015
Размер:
19.94 Mб
Скачать
      1. Команды сравнения данных

Эти команды выполняют сравнение содержимого вершины стека с указанным в команде операндом.

Вещественные числа

Команда

Описание

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 - денормализованное число.

      1. Арифметические команды

В группу арифметических команд входят команды, реализующие операции сложения, вычитания, умножения и деления. Арифметические команды можно разделить на две подгруппы:

  • для работы с целочисленными операндами.

  • для работы с вещественными операндами.

Команды для работы с вещественными операндами

Команда

Описание

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)).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]