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



         

Степени десяти - часть 2


    регистровый стек сопроцессора 8087, освобождая все его восемь
    позиций.  Программа должна использовать команду FINIT только в
    момент запуска.  Команда FINIT никогда не должна быть использована
    внутри подпрограммы для сопроцессора 8087.
 
      Следующие команды загружают число 1000 в регистр ST1 и число 1
    в регистр ST0.  Все следующие команды сопроцессора 8087 используют
    эти два регистра стека.  В регистре ST0 находится текущая степень
    десяти, а в регистре ST1 находится значение 103.  Мы будем
    использовать число в регистре ST1 для увеличения числа в регистре
    ST0 после каждой итерации программы.  Целая переменная POWER
    содержит текущую степень 10, находящуюся в регистре ST0.
 
      После метки POWER_LOOP элемент ST0 умножается на элемент ST1,
    (в котором содержится число 1000), чтобы увеличить содержимое
    регистра ST0 в 103 раз.  Команда FST записывает результат в память.
    Оставшаяся часть программы после метки POWER_LOOP печатает
    результаты вычислений.  В подпрограмме TRANSLATE шестнадцатеричный
    байт преобразуется в двухбайтовую строку в коде ASCII так, что
    программа может его распечатать.  Текущее значение POWER (степень
    десяти), а также шестнадцатеричная строка, записанная процессором
    8087, преобразуются в код ASCII.  Затем функция DOS печатает строку
    на дисплее.  Цикл POWER_LOOP продолжается до тех пор, пока
    последнее напечатанное значение не станет больше 1038.  Это
    значение выбрано потому, что 1038 - это максимальное число, которое
    может быть представлено в коротком действительном формате.    Если бы
    использовался длинный действительный формат чисел, это значение
    было бы равно 10308.  Заключительная часть Фиг. 7.23 показывает,
    как выглядит результат работы этой программы на дисплее.
 

           Microsoft (R) Macro Assembler Version 5.00              1/1/80 04:04:33
           Фиг. 7.23 Степени 10                             Page   1-1
 
 



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