Assembler - язык неограниченных возможностей


Трансцендентные операции FPU - часть 2


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


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


  ST(0)

ST(1)

  -
-F 0 0 +F +
-
-3
/4
-
/2
-
/2
-
/2
-
/2
-
/4
-F -
от -
до -
/2
-
/2
-
/2
от -
/2 до -0
0
0 -
-
-
0 0 0
0 +
+
+
0 0 0
+F +
от +
до +
/2
+
/2
+
/2
от +
/2 до +0
0
+
+3
/4
+
/2
+
/2
+
/2
+
/2
+
/4


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

  • Команда:
  • F2XMI
  • Назначение:
  • Вычисление 2х-1
  • Процессор:
  • 8087

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

  • Команда:
  • FYL2X
  • Назначение:
  • Вычисление у*log2(x)
  • Процессор:
  • 8087

    Вычисляет ST(1)*log2(ST(0)), помещает результат в ST(1) и выталкивает ST(0) из стека, так что после этой операции результат оказывается в ST(0). Первоначальное значение ST(0) должно быть неотрицательным. Если регистр ST(0) содержал ноль, результат (если ZM = 1) будет равен бесконечности со знаком, обратным ST(1).

  • Команда:
  • FYL2XP1
  • Назначение:
  • Вычисление у*log2(x+1)
  • Процессор:
  • 8087

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

    /2) до (1 +
    /2), иначе результат не определен. Команда FYL2XP1 дает большую точность для ST(0), близких к нулю, чем FYL2X для суммы того же ST(0) и 1.





    Начало  Назад  Вперед