Assembler для начинающих



         

Степенные и тригонометрические функции - часть 4


    команды FPREM.  Результатом является отношение Y/X, которое равно
    тангенсу угла; Y замещает вершину стека, а затем в стек помещается
    X.      Другие тригонометрические функции можно вычислить с
    использованием этих значений; например, косинус COS(угол) =
    X/SQRT(X2 + Y2).
 
      FPATAN      (частичный арктангенс)
         ST <- Arctan(Y/X) = Arctan(ST1/ST)
 
      Эта функция дополняет предыдущую, FPTAN.  Команда FPATAN
    вычисляет угол в соответствии с отношением чисел ST1 и ST0.  Она
    извлекает из стека число X, а затем записывает результирующий угол
    вместо числа Y в качестве новой вершины стека.  Исходные значения
    должны подчиняться неравенству
 
      0 < Y < X < бесконечность
      F2XM1  (два в степени X минус 1)
         ST <- 2ST - 1
 
      Эта функция выполняет возведение в степень; она возводит 2 в
    степень, указанную в вершине стека.  Исходное число должно
    находиться в диапазоне 0 <= ST <=0.5, и чтобы вычислить два в
    степени, большей 0.5, эту команду нужно использовать вместе с
    командой FSCALF.  С помощью команд FLD, загружающих специальные
    константы, программа может возвести в заданную степень также числа,
    отличные от 2, для этого используются следующие формулы:
 
      10**X = 2**(X*Log2(10))
      e**X = 2**(X*Log2(e))
      Y**X = 2**(X*Log2(Y))
 
      Далее приводится пример возведения 10 в произвольную степень.
 
      FYL2X (Y умножить на логарифм по основанию 2 от X)
         ST <- Y*Log2(X) = ST1*Log2(ST)
 
      Эта функция выполняет операцию логарифмирования.  Она берет
    логарифм по основанию 2 от содержимого вершины стека и затем
    умножает его на элемент ST1.  Команда FYL2X извлекает из стека
    число X и замещает результат числом Y.  Исходные числа должны
    удовлетворять следующим соотношениям:
 
      0 < X < бесконечности и - бесконечность < Y < бесконечности.
    Эта функция позволяет вычислять логарифмы и по основаниям, отличным
    от 2.  Следующая формула:
 
      Logn(2) * Log2(X)
 
      вычисляет логарифм числа X по основанию n; значение Logn2
    вычисляется как 1/(Log2n).
 
      FYL2XP1  (Y умножить на логарифм по основанию 2 от X+1)
          ST <- Y*Log2(X+1) = ST1*Log2(ST+1)
 
      Эта функция идентична функции FYL2X за исключением того, что к
    X прибавляется 1.  Функция FYL2XP1 накладывает более жесткие
    ограничения на X, и предназначена для вычисления логарифмов чисел,
    значения которых очень близки к 1.    Эта функция дает наиболее
    высокую точность, если
 
      0 < ABS(X) < 1 - (корень из 2 )/2



Содержание  Назад  Вперед