2.4.7. Трансцендентные операции ИРи

Команда

Назначение

Процессор

 

Синус

80387

Вычисляет синус числа, находящегося в ST(0), и сохраняет результат в этом же регистре. Операнд считается заданным в радианах и не может быть больше 263 или меньше -263 (можно воспользоваться FPREM с делителем 2л, если операнд слишком велик). Если операнд выходит за эти пределы, флаг С2 устанавливается в 1 и значение ST(0) не изменяется.

Команда

Назначение

Процессор

FCOS

Косинус

80387

Вычисляет косинус числа, находящегося в ST(0), и сохраняет результат в этом же регистре. Операнд считается заданным в радианах и не может быть больше 263 или меньше -263 (так же, как и в случае синуса, можно воспользоваться FPREM с делителем 2я, если операнд слишком велик). Если операнд выходит за пре­делы, флаг С2 устанавливается в 1 и значение ST(0) не изменяется.

Команда

Назначение

Процессор

рэтсоэ

Синус и косинус

80387

Вычисляет синус и косинус числа, находящегося в ЯЦО), помещает синус в|8Т(0), а затем косинус в стек (так что синус оказывается в 5Т(1), косинус - в ST(0), и ТОР уменьшается на Операнд считается заданным в радианах и не может быть боль­ше или меньше Если операнд выходит за эти пределы, флаг С2 устанав­ливается в 1 и значение ST(0) и стек не изменяются.

j


Числа с плавающей запятой

т

мтшша

Команда Назначение

 

Процессор

FPTAN Тангенс

 

BGB7

Вычисляет тангенс числа, находящегося в регистре БТ(0), заменяет его на вычисленное значение и затем помещает 1 в стек, так что результат оказывается в БТ(1), БТ(0) содержит 1, а ТОР уменьшается на единицу. Как и для остальных

тригонометрических команд, операнд считается заданным в радианах и не может быть больше 263 или меньше -263. Если операнд выходит за эти пределы, флаг С2 устанавливается в 1 и значение БТ(0) и стек не изменяются. Единица помещает­ся в стек для того, чтобы можно было получить котангенс вызовом команды FDIVR сразу после FPTAN.

Команда

Назначение

Процессор

FPATAN

Арктангенс

BGB7

Вычисляет арктангенс числа, получаемого при делении на ST(0), сохра-

няет результат в ST(1) и выталкивает ST(0) из стека (помечает ST(0) как пустой и увеличивает ТОР на 1). Результат всегда имеет тот же знак, что и ST(1), и мень­ше it по абсолютной величине. Смысл этой операции в том, что FPATAN вычис­ляет угол между осью абсцисс и линией, проведенной из центра координат в точ­ку ST(1), ST(0).

FPATAN может выполняться над любыми операндами (кроме не-чисел), давая результаты для различных нулей и бесконечностей, определенные в соответствии

со стандартом IEEE (как показано в табл. 17).

Таблица 17. Результаты работы команды

 

—со

-F

-0

+0

+F

+00

—DO

-Зя/4

-я/2

-я/2

-я/2

-я/2

-я/4

-F

от -я до -я/2

-я/2

-я/2

от -я/2 до -0

-0

-0

-0

-0

-0

+0

-Не

+п

+0

+0

+0

+F

. +71

от +я до +я/2

+я/2

+я/2

от +я/2 до +0

+0

+00

+Зя/4

+я/2

+я/2

+я/2

+я/2

+я/4

Команда Назначение Процессор

F2XM1 Вычисление 2х-1 BGB7

Возводит 2 в степень, равную БТ(0), и вычитает 1. Результат сохраняется в БТ(0). Значение БТ(0) должно лежать в пределах от -1 до +1, иначе результат не определен.

1 F в этой таблице - конечное вещественное число.

Процессоры Intel реальном режиме

Команда

Назначение

Процессор

FYL2X

' Вычисление v х ІоаЛх)

BGB7

Вычисляет 8Т(1) х 1с^2(5Т(0)), помещает результат в 8Т(1) и выталкивает 8Т(0) из стека, так что после этой операции результат оказывается в ЭТ(0). Пер­воначальное значение 8Т(0) должно быть неотрицательным. Если регистр 8Т(0) содержал ноль, результат (если ХМ = 1) будет равен бесконечности со знаком, обратным 8Т(1).

Команда Назначение Процессор

FYL2XP1_ Вычисление у х log2(x+1)_BGB7

Вычисляет ST(1) х log2(ST(0) + 1), помещает результат в ST(1) и выталкивает ST(0) из стека, так что после этой операции результат оказывается в ST(0). Пер­воначальное значение ST(0) должно быть в пределах от -(1 -^2/2)до (1 + V2/2), в противном случае результат не определен. Команда дает большую точ-

ность для ST(0), близких к нулю, чем FYL2X для суммы того же ST(0) и 1.