Дополнительные арифметические команды

Далее перечислены команды, входящие в группу дополнительных арифметических команд:

FSQRT — вычисление квадратного корня из значения, находящегося в вершине стека сопроцессора — регистре ST(0). Команда не имеет операндов. Результат вычисления помещается в регистр ST(0).

FABS — вычисление модуля значения, находящегося в вершине стека сопроцессора — регистре ST(0). Команда не имеет операндов. Результат вычисления помещается в регистр ST(0);

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

FXTRACT — команда выделения порядка и мантиссы значения, находящегося в вершине стека сопроцессора — регистре ST(0). Команда не имеет операндов. Результат выделения помещается в два регистра стека — мантисса в ST(0), а порядок в ST(1). При этом мантисса представляется вещественным числом с тем же знаком, что и у исходного числа, и порядком равным нулю. Порядок, помещенный в ST(1), представляется как истинный порядок, то есть без константы смещения, в виде вещественного числа со знаком и соответствует величине Р формулы (17.1).

 

Команда масштабирования

FSCALE – Эта команда изменяет порядок значения, находящегося в вершине стека сопроцессора – регистре ST(0), на величину в ST(1). Команда не имеет операндов. Величина в ST(1)рассматривается как число со знаком. Его прибавление к полю порядка вещественного числа в st(0)означает его умножение на величину 2

 

Сопроцессор имеет программно-аппаратные средства для округления тех результатов работы команд, которые не могут быть точно представлены. Но операция округления может быть проведена к значению в регистре st(0) и принудительно, для этого предназначена последняя команда в группе дополнительных команд — команда FRNDINT. Эта команда округляет до целого значение, находящееся в вершине стека сопроцессора — регистре st(0). Команда не имеет операндов.

Возможны четыре режима округления величины в ST(0), которые определяются значениями в двухразрядном поле RC управляющего регистра сопроцессора. Как изменить режим округления? С помощью двух команд FSTCWR и FLDCWR, которые, соответственно, записывают в память содержимое управляющего регистра сопроцессора и восстанавливают его обратно. Таким образом, пока содержимое этого регистра находится в памяти, вы имеете возможность установить необходимое значение поля RC.








Дата добавления: 2015-04-15; просмотров: 1036;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.