Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
YaP_Vopros_9_Sistema_komand_soprotsessora.doc
Скачиваний:
5
Добавлен:
30.04.2015
Размер:
229.38 Кб
Скачать

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

Команды сопроцессора, входящие в группу арифметических команд, реализуют четыре основные арифметические операции — сложение, вычитание, умножение и деление. Имеется также несколько дополнительных команд, предназначенных для повышения эффективности использования основных арифметических команд.

С точки зрения типов операндов арифметические команды сопроцессора можно разделить на команды, работающие с вещественными и целыми числами.

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

Целочисленные арифметические команды предназначены для работы на тех участках вычислительных алгоритмов, где вкачестве исходных данных используются целые числа в памяти в формате слово и короткое слово, имеющие размерность 16 и 32 бита.

fiadd источник — команда складывает значения ST(0)и целочисленного источника, в качестве которого выступает 16-или 32-разрядный операнд в памяти. Результат сложения запоминается в регистре стека сопроцессора ST(0). (st(0)=st(0)+И)

fisub источник — команда вычитает значение целочисленного источника из ST(0). Результат вычитания запоминается в регистре стека сопроцессора ST(0). В качестве источника выступает 16-или 32-разрядный целочисленный операнд в памяти.

fimul источник — команда умножает значение целочисленного источника на содержимое ST(0). Результат умножения запоминается в регистре стека сопроцессора ST(0). В качестве источника выступает 16-или 32-разрядный целочисленный операнд в памяти.

fidiv источник — команда делит содержимое ST(0) на значение целочисленного источника. Результат деления запоминается в регистре стека сопроцессора ST(0). В качестве источника выступает 16-или 32-разрядный целочисленный операнд в памяти.

Для команд, реализующих арифметические действия деления и вычитания, важен порядок расположения операндов. По этой причине система команд сопроцессора содержит соответствующие реверсивные команды, повышающие удобство программирования вычислительных алгоритмов. Чтобы отличить эти команды от обычных команд деления и вычитания, их мнемокоды оканчиваются символом R.

fisubr источник — команда вычитает значение ST(0) из целочисленного источника. Результат вычитания запоминается в регистре стека сопроцессора ST(0). В качестве источника выступает 16-или 32-разрядный целочисленный операнд в памяти.

fidivr источник — команда делит значение целочисленного источника на содержимое st(0). Результат деления запоминается в регистре стека сопроцессора ST(0).В качестве источника выступает 16-или 32-разрядный целочисленный операнд в памяти.

Вещественные арифметические команды

Схема расположения операндов вещественных команд традиционна для команд сопроцессора. Один из операндов располагается в вершине стека сопроцессора — регистре ST(0),куда после выполнения команды записывается и результат, а второй операнд может быть расположен либо в памяти, либо в другом регистре стека сопроцессора. Допустимыми типами операндов в памяти являются все перечисленные ранее вещественные форматы за исключением расширенного.

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