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

 
 
 
«Отладка кода вдвое сложнее, чем его написание. Так что если вы пишете код настолько умно, насколько можете, то вы по определению недостаточно сообразительны, чтобы его отлаживать.»
Brian W. Kernighan.
Русский | Українська


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

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

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

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

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

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

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

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

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

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

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

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

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