УМНОЖЕНИЕ ЦЕЛОГО ЧИСЛА НА ЧИСЛО С ПЛАВАЮЩЕЙ ЗАПЯТОЙ
Применение арифметики с плавающей запятой в микропроцессорных информационно-измерительных системах требует расширения стандартного набора арифметических действий операцией умножения числа с плавающей запятой на N-байтное целое число.
Дело в том, что в таких системах многие измерительные величины накапливаются в целочисленном виде, например в виде количества импульсов, поступающих на вход системы от объекта измерения. Обычно каждый импульс несет определенную информацию об объекте, например сообщает о некотором кванте энергии, выработанной или потребленной объектом измерения, т. е. обладает некоторым заранее известным числовым весом. Умножая весовой коэффициент, представляемый в форме с плавающей запятой, на количество импульсов, поступивших в систему за определенное время, можно определить интегральные характеристики объекта измерения.
Результат размещается в области памяти БУФЕР. Программа обращается к ряду вспомогательных программ, рассмотренных ранее. Умножение непосредственно выполняется лишь после проверки обоих сомножителей на нуль, причем проверка Af-байтного сомножителя осуществляется, начиная с его старших байтов. Тем самым в дальнейшем исключаются из процесса умножения старшие незначащие (нулевые) байты числа. Мантисса сомножителя с плавающей запятой загружается из памяти в регистры микропроцессора, преобразуется из дополнительного кода в прямой, и далее выполняются вложенные циклы умножения: внутренний ЦИКЛЗ и внешний ЦИКЛ2. Умножение текущего байта целого сомножителя на положительный сомножитель с плаваю
щей запятой осуществляется по методике умножения чисел с фиксированной запятой согласно вычислительной схеме 1 (см. рис. 1.5, а) с коррекцией порядка произведения при каждом очередном переполнении СЧП. После окончания умножения на текущий байт происходит переход к следующему байту, и так до тех пор, пока не будет закончено умножение на все значащие байты целого сомножителя. После этого производятся, если необходимо, дополнение произведения и его запись в БУФЕР. В случае переполнения порядка произведения устанавливается признак переноса CY= 1. Тестовые данные программы УЦПЗ приведены в табл. 2.5.
Табл. 2.5. Тесты умножения для программы УЦПЗ
3.