December 11 2017 07:50:13
Навигация
Авторизация
Логин

Пароль



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

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

Таблица 2.37 Команды специальных операций FPU

Синтаксис команды Операция
FSCALE
FXTRACT
FRNDINT
Порядок ST(0) + целое ST(1) ® порядок ST(0)
Округление ST(0)
Мантисса ST(0) ® ST(0), порядок ST(0) ® ST(1)
FSIN
FCOS
FSINCOS
sin ST(0) ® ST(0)
cos ST(0) ® ST(0)
sin ST(0) ® ST(0), cos ST(0) ® ST(1)
FPTAN
FPATAN
tgST(0) ® ST(1), 1.0 ® ST(0)
arctg(ST(1)/ST(0)) ® ST(0)
F2XM1
FYL2X
FYL2XP1
2ST(0)-1 ® ST(0)
ST(1)*log2ST(0) ® ST(0)
ST(1)*log2(ST(0)+1.0) ® ST(0)

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

При выполнении команд FSIN, FCOS, FSINCOS, FPTAN исходный операнд в регистре ST(0) должен находиться в диапазоне - 2 63... +2 63. Если операнд выходит за указанные границы, то в регистре FPSR устанавливается значение бита С2 = 1, а результатом операции будет неопределенное значение (код неопределенности в формате РТ). Какое-либо исключение при этом не реализуется.

Команда FPATAN вычисляет значение функции arctg (х/у), запрещающего другим устройствам системы (процессорам) обращаться к системной шине в течение времени выполнения последующей команды. Префикс LOCK может предшествовать только командам ADD, XADD, ADC, SUB, SBB, AND, OR, XOR, DEC, INC, NEG, NOT, ВТ,где х содержится в регистре ST(1), y - в ST(0). После вычисления производится выталкивание из стека (значение поля ТОР в регистре FPSR увеличивается на единицу), а результат вычисления размещается в новой вершине стека ST(0) [бывшем регистре ST(1)].

Команда F2XM1 вычисляет значение функции 2 х - 1, где х-содержимое регистра ST(0). Результат операции размещается в том же регистре ST(0). При этом величина х должна находиться в диапазоне - 1 ... +1, иначе результатом операции будет неопределенность (см. табл. 2.26).

При вычислении логарифмических функций y*log 2 х, y*log 2 (х+1) с помощью команд FYL2X, FYL2XP1 операнд х размещается в ST(0), операнд у - в ST(1). При выполнении команд производится извлечение операндов из стека, а результат заносится в вершину стека. Значение поля ТОР в регистре FPSR после выполнения этих команд возрастает на единицу, т. е. результат будет содержаться в новой вершине стека ST(0) - бывшем регистре ST(1). На значения операнда х накладываются определенные ограничения. При выполнении команды FYL2X должно быть значение х > 0, иначе реализуется исключение недействительной операции #1. При выполнении команды FYL2XP1 операнд х должен находиться в диапазоне

- (1 - I 2/2) < х < + (1 - I 2/2),

иначе результатом операции будет неопределенность (см. табл. 2.26).

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

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

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

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