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



         

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


Числа с плавающей запятой двойной точности имеют точность 11 значащих разрядов и диапазон 9.9999999999999999Е-38 - 1Е38.,Правила ввода и вывода чисел при использовании программ с плавающей запятой из ПЗУ точно такие же, как правила Бейсика уровня 1 для TRS-80 или Бейсика фирмы Microsoft, и приведены они в документации микрокомпьютера. MMSFORTH и большинство других версий Форт для IBM PC также поддерживают арифметический сопроцессор серии 8087, который может быть установлен в персональных компьютерах и других совместимых ЭВМ. Сопроцессор типа 8087 вместе с MMSFORTH позволяет работать с числами имеющими 16 значащих разрядов мантиссы и порядок от -4932 до 4932. Кроме того, он обеспечивает вычисление трансцендентных функций и всех функций обычной арифметики с плавающей запятой и ряда других. Однако микросхема 8087 выполняет все расчеты не с помощью процедур на машинном языке, а с помощью аппаратных средств, которые представляют собой часть электронных схем процессора 8087. Аппаратная арифметика микросхемы 8087 является очень быстродействующей, она в 100 раз быстрее, чем эквивалентная математика на машинном языке и чаще всего быстрее, чем арифметика целых чисел (см. гл. 8). Мы опишем два варианта реализации в MMSFORTH арифметических операций с плавающей запятой: в ПЗУ и на базе сопроцессора 8087.

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

Краткие сведения о функции арифметики с плавающей запятой, реализованной в MMSFORTH на базе ПЗУ, приведены в табл. 4.4. В этом разделе мы опишем некоторые характерные черты этой арифметики, а в следующем - ее отличия от реализации на сопроцессоре 8087.

Числа с плавающей запятой представляются в стеке с 32 разрядами при единичной точности и с 64 разрядами при двойной точности. Таким образом, все слова, которые применяются с целыми числами двойной длины, можно использовать с числами с плавающей запятой одинарной точности, включая слова для задания констант и массивов, которые будут рассмотрены в гл. 6. Перед вводимым числом с плавающей запятой должен быть знак %, Ввод производится в свободном формате, поэтому % 1-01Е2, % 10.1 и % .10100Е3 будут в результате помещать в стек одно и то же число , 10.1 в старших 32 битах как число с плавающей запятой.


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