December 15 2017 04:12:18
Навигация
Авторизация
Логин

Пароль



Вы не зарегистрированы?
Нажмите здесь для регистрации .

Забыли пароль?
Запросите новый здесь.
Команда FPREM
ПРОЦЕССОРЫ ОБЩЕГО НАЗНАЧЕНИЯ И СИСТЕМЫ НА ИХ ОСНОВЕ

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

Н, IE = 1 -устанавливается флаг недействительной операции IE = 1, результатом является код неопределенности, если значение маски IM = 1;

(±) - знак результата S устанавливается с помощью операции «Исключающее ИЛИ» над знаками операндов S1, S2, т. е. S = S1 (+) S2;

±0 при UE = 1 - результат +0 или -0 устанавливается при получении антипереполнения (UE = 1), если значение маски UM = 1;

*0 - знак устанавливается в зависимости от способа округления, заданного полем RC: +0 при RC = 00,10,11; -0 при RC = 01.

При выполнении операций, вызывающих установку флагов IE = 1, UE = 1 или ZE = 1, реализуется прерывание, если флаги не маскированы. Если же соответствующие маски имеют значение IM = 1, UM = 1, или ZM = 1, то процессор продолжает выполнение профаммы, а результатами операций служат коды неопределенности (Н) при IE = 1, ±0 при UE-1, ±L при ZE = 1, согласно табл. 2.31.

He-числа SNAN, QNAN также могут быть операндами при выполнении команд над вещественными числами. В этом случае результат арифметической операции определяется согласно табл. 2.32, где QNAN (SNAN) обозначает не-число QNAN, полученное из SNAN путем установки единицы в старшем разряде мантиссы. Остальные разряды мантиссы при преобразовании SNAN в QNAN сохраняют свое значение.

Команда FPREM производит деление числа, расположенного в ST(0), на число в ST(1), остаток накапливается в регистре ST(0). Деление осуществляется путем последовательного вычитания, которое выполняется n раз-до тех пор, пока не будет получено ST(0) < ST(1).

При этом в регистре FPSR бит С2 принимает значение 0. Число вычитаний n определяется как частное ST(0)/ST(1), которое округляется до целого путем отбрасывания дробной части. Знак остатка устанавливается таким же, как знак делимого. Максимальное число выполняемых вычитаний ограничено n <= 64. Если 64 вычитаний недостаточно для получения ST(0)<ST(1), то в регистре FPSR устанавливается значение бита С2 = 1, а в регистре ST(0) сохраняется частичный остаток. Точный остаток получается при повторных выполнениях команды FPREM до получения С2 = 0. После выполнения этой команды биты СО, С1, СЗ регистра FPSR содержат три младших разряда частного.

Команда FPREM1 также осуществляет вычисление частичного остатка. Отличие от команды FPREM состоит в том, что число вычитаний при выполнении команды FPREM1 определяется в соответствии со стандартом IEEE 754, как частное ST(0)/ST(1), которое округляется до ближайшего целого. Получаемый остаток в этом случае будет не больше половины делителя.

Таблица 2.31 Результаты арифметических операций при использовании операндов ±0 и ±L

Операция Результат Операция Результат
FADD, FADDP


(+0) + (+0) +0 (+¥)+(+¥)
(-0) + (-0) -0 (-¥)+(-¥)
(+0) + (-0); (-0) + (+0) *0 (+¥)+(-¥) H,IE=1
(-X) + (+X); (+X) + (-X) *0 (±X)+(±¥) ±¥
FSUB,FSUBP,FSUBR,FSUBRP


(+0) - (-0) +0 (+¥)-(-¥) +¥
(-0) - (+0) -0 (-¥)-(+¥) -¥
(+0) - (+0); (-0) - (-0) *0 (+¥)-(+¥) H,IE=1


(-¥)-(-¥) H,IE=1
(+X) - (+X); (-X) - (-X) *0 ¥)-(±X) ±¥


(±X)+(±¥) ±¥
FMULP, FMULP


(+-0)*(+-0) (+-)0 ¥)*(±¥) (+-)¥
(+-0)*(+-X) (+-)0 ¥)*(±X) (+-)¥
(+X)*(+Y); (-X)´(-Y) +0 при UE=1 ¥)*(±0) H,IE=1
(+X)*(-Y); (-X)´(+Y) -0 при UE=1

FDIV,FDIVP,FDIVR,FDIVRP


(+-0)/(+-0) H,  IE=1 ¥)/(±¥) H,IE=1
(+-X)/(+-0) (+-)¥,   ZE=1 ¥)/(±X) (+-)¥
(+-0)/(+-X) (+-)0 (±X)/(* ¥) (+-)0
(-X)/(-Y); (+X)/(+Y) +0 при UE=1 ¥)/(±0) (+)¥
(-X)/(+Y); (+X)/(-Y) -0 при UE=1


Команда FSQRT вычисляет квадратный корень из содержимого ST(0) и размещает его в этом же регистре.

Команды FABS и FCHS изменяют знак числа в регистре ST(0), чтобы получить абсолютное значение этого числа (команда FABS) или число с противоположным знаком (команда FCHS).

Таблица 2.32 Результаты арифметических операций над не-числами SNAN, QNAN

Операнды Результат
SNAN и QNAN
SNAN и SNAN
QNAN и QNAN
SNAN и число
QNAN и число
QNAN
QNAN (SNAN с большей мантиссой)
QNAN с большей мантиссой
QNAN (SNAN)

QNAN


Комментарии
Нет комментариев.
Добавить комментарий
Пожалуйста, залогиньтесь для добавления комментария.
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, авторизуйтесьили зарегистрируйтесь для голосования.

Нет данных для оценки.

Время загрузки: 0.04 секунд 2,297,519 уникальных посетителей