Язык программирования Форт



         

Глава 4. Еще об арифметических операциях - часть 32


* Набор программ содержит также несколько слов для работы с числами двойной и учетверенной длины, например 4 SWAP, Обозначения: f - число с плавающей запятой; df - число двойной точности с плавающей запятой; ср - комплексное число с плавающей запятой; n - 16- битовое число со знаком; адр - адрес.

Арифметика с плавающей запятой, реализованная на сопроцессоре 8087

Реализация операций с плавающей запятой на основе микросхемы 8087 отличается от реализации на ПЗУ несколькими существенными моментами: 1) вместо стека в памяти ЭВМ используется стек микросхемы, поэтому версии Форта могут иметь различия; преимущество этого стека - в быстродействии, недостаток - в ограниченной глубине стека; 2) большая часть операций выполняется на аппаратном уровне микросхемы 8087, а не на уровне машинных программ; 3) числа в стеке микросхемы 8087 хранятся как 80-битовые, а в памяти как 64-битовые, что дает дополнительные 16 знаков точности по сравнению с 64-битовыми числами, и 9 разрядов для 32-битовых чисел. Диапазон значений порядка от -4932 до 4932 (80 битов), от -306 до 307 (64 бита) и от -38 до 38 (32 бита); 38 (32 бита); 4) скорость операций с плавающей запятой на микропроцессоре 8087 в 100 раз выше, чем на ПЗУ, и для некоторых операций даже превосходит скорость вычислений с 16-разрядными целыми числами; умножение на микросхеме 8087 производится на 45% быстрее, чем с целыми числами, а сложение на 5% медленнее; 5) гарантируется обычно 16 точных разрядов при фиксированном формате мантиссы. Ввод чисел так же, как и в варианте на ПЗУ, производится в свободном формате, за исключением того, что диапазон вводимых чисел увеличивается- А так как в микросхеме имеется отдельный стек, то можно использовать оба стека одновременно без взаимных помех. Например, можно написать выражение тогда получится следующий результат: 291 0.1000000000000000Е60

Это значит, что вычисления с целыми числами и числами с плавающей запятой производятся одновременно и независимо в двух стеках: складываются числа 55 и 236 и перемножаются 1Е50 и 1Е10 и печатаются оба результата.


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