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

Изображение чисел с плавающей точкой


      Следующая подпрограмма берет число из вершины стека и
    преобразует его в печатную строку символов.  Фактически,
    подпрограмма извлекает число с вершины стека и посылает его на
    дисплей.  Далее эта подпрограмма будет использована в двух примерах
    для вывода их результатов.      Исходный текст программы показан на
    Фиг. 7.25.
 
      Эта подпрограмма достаточно просто строит выводимую символьную
    строку.  Если исходное число NAN, либо бесконечность, или другое
    специальное число сопроцессора 8087, результат будет показан
    неверно.  Первая часть программы - удобное место для использования
    команды FXAM, которая определила бы тип числа в вершине стека.  Но


    в данном примере эта команда не используется, так как
    предполагается, что исходное число имеет нужный тип.
 
      Эта программа не приспособлена для оформления формата
    выводимого числа.  Результат всегда содержит знак (либо пробел,
    либо знак "-") и целую часть, состоящую из одной цифры.  После
    десятичной точки расположены восемь десятичных позиций, а затем
    буква E и три позиции цифр для степени 10.  Результат работы этой
    программы не так хорош, как можно было желать, но он позволяет
    видеть результат работы программы в читабельной форме.  Более
    красивое преобразование числа потребовало бы значительно больше
    команд, и лишь малая часть из них помогла бы пониманию работы
    сопроцессора 8087.
 
      Программа преобразования работает следующим образом.  Сначала
    она определяет порядок числа.  Например, число 1234 имеет порядок
    3; это означает, что оно находится между значениями 103 и 104.
    Найдя правильный порядок числа, программа сохраняет его значение
    (показатель степени результата) и делит исходное число на 10 в этой
    степени.  Теперь число находится в интервале от 1 до 10.  Затем
    программа умножает число на 108.  Запись этого числа в десятичной
    форме дает девять десятичных цифр; старшая цифра - целая часть,



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