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

Десять в степени X


      Второй пример использования сопроцессора 8087 гораздо глубже
    раскрывает перед нами его работу.  Этот пример - подпрограмма,
    которая будет использоваться в дальнейшем.  Подпрограмма
    предполагает, что исходное число находится в вершине стека; после
    возврата из подпрограммы в вершине стека находится число, равное
    десяти в степени X.  Исходный текст этой подпрограммы приведен на
    Фиг. 7.24.
      Сопроцессор 8087 не имеет команды возведения 10 в произвольную
    степень, но мы можем возводить в любую степень двойки.  Поэтому
    нужжно пользоваться формулой
 
      10**X = 2**(X*Log2(10))


 
      Первые две команды программы формируют показатель степени двух.
    Программа загружает константу Log210, а затем умножает ее на
    исходное число X, давая необходимую степень 2, называемую здесь E.
    Поле комментариев в примере используется для иллюстрации элементов
    стека сопроцессора 8087.  Символ "?" означает, что значение
            Microsoft (R) Macro Assembler Version 5.00             1/1/80 04:04:40
            Фиг. 7.24 Вычисление 10**ST                       Page         1-1
 
                                          PAGE    ,132
                                          TITLE   Фиг. 7.24 Вычисление 10**ST
             0000                   CODE    SEGMENT PUBLIC
                                          ASSUME  CS:CODE,DS:CODE
                                          PUBLIC  TEN_TO_X
             0000  ????             OLD_CW  DW      ?
             0002  ????             NEW_CW  DW      ?
                                    ;--------------------------------------------
                                    ; Эта программа извлекает число с вершины стека
                                    ;  сопроцессора 8087 и возводит 10 в эту степень.
                                    ; Параметры: X в ST(0)
                                    ; Результат: 10**X в ST(0)
                                    ; Эта программа использует две ячейки в стеке 8087



Содержание раздела