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


         

Это означает, что даже если


 
      0 <= X < PI/4
 
      Это означает, что даже если угол и меньше 2*PI, мы должны
    уменьшить его еще, чтобы он удовлетворял ограничениям команды
    FPTAN.  К счастью, если исходный угол уменьшен до значения,
    меньшего PI/4, все еще можно определить верное значение
    тригонометрических функций.  Чтобы это сделать, надо знать, в каком
    месте исходного диапазона от 0 до 2*PI находился исходный угол.
 
      Нужное уменьшение угла выполняет команда FPREM.  Она не только
    вычисляет остаток, но и три младших бита частного, определяемого в
    течение процесса поиска остатка.  Эти три бита команда записывает в
    слово состояния.  Следовательно, хотя мы и уменьшили угол до
    значения одной восьмой исходного диапазона, все же можно определить
    октант, в который попадет угол.  Зная его, можно найти формулу
    вычисления синуса с помощью тригонометрических преобразований.
    Таблица на Фиг. 7.28 показывает связь между исходным октантом и
    методом вычисления синуса угла.  В таблице предполагается, что
    число R - это остаток от уменьшения исходного угла до значения
    меньше PI/4.  Номер октанта появляется в разрядах C3 = C1 = C0
    после выполнения команды FPREM.
 
      С помощью этой таблицы мы можем определить формулу вычислений,
    применяемую в каждом случае выполнения программы.  После загрузки
    значения угла в радианах программа загружает число и делит его на
    4, чтобы использовать в команде FPREM.  В этот момент
    "захватывается" слово состояния.  Если процесс поиска остатка не
    завершился на этом единственном шаге, это означает, что исходный
    угол был больше 2**64.  Следовательно, его значение настолько больше
    максимально возможного при вычислениях тригонометрических функций,
    что мы отбрасываем это число, как слишком большое.      Этого не
    происходит со значениями, выбранными в примере, но здесь для
    иллюстрации введена такая проверка.
 
            Октанты
        C0  C3    C1    Диапазон        SIN(X) = :

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