Микропроцессоры и микроконтроллеры

 
 
 
«Большинство программ на сегодняшний день подобны египетским пирамидам из миллиона кирпичиков друг на друге и без конструктивной целостности — они просто построены грубой силой и тысячами рабов.»
Alan Kay
Русский | Українська


Микропроцессоры и микроконтроллеры :: Каналы ввода-вывода на основе МК51 :: Реализация суммирования в формате ПЗ

Реализация суммирования в формате ПЗ

Суммирование

– запись операции в общем виде.

, – представление значений операндов.

Пусть . Сумма запишется в виде:

Для приведения масштабов чисел к единому значению масштаб большего числа будем считать основным, а меньшее число будем приводить к основному масштабу. Следовательно, перед суммированием мантисс мантисса меньшего числа должна быть сдвинута вправо на количество разрядов .

Значение мантиссы результата получаем как ,

Порядок результата получается как

Обычно в практически используемых форматах с ПЗ мантисса представляется в прямом коде независимо от знака. Поэтому перед суммированием мантисс нужно сравнить знаки операндов и при разных знаках выполнять вычитание. Для гарантированного получения прямого кода мантиссы вычитать следует из большей мантиссы меньшую. При этом может потребоваться перестановка мантисс, и, соответственно, их порядков.

В результате суммирования значений мантисс и возможно получение ненормализованного значения : т.е. или – переполнение разрядной сетки суммы.

В этом случае выполняется нормализация мантиссы путем сдвига влево или сдвига вправо на 1 разряд. Сдвиг должен сопровождаться соответствующей коррекцией порядка числа: при сдвиге влево на 1 разряд значение порядка должно быть уменьшено на 1: , а при сдвиге вправо – увеличено на 1: . Также нужно проконтролировать, чтобы скорректированное значение порядка не превысило допустимые пределы значений.

Реализация вычитания производится на основе операции суммирования, но у второго слагаемого должен быть изменен знак: