Организация ЭВМ и систем. Однопроцессорные ЭВМ. Часть 1

       

Умножение модулей двоично-десятичных чисел


Операция умножения сводится к образованию и многократному сложению частичных двоично-десятичных произведений.

Алгоритм выполнения операции состоит в следующем:

1.   Сумма частичных произведений полагается равной нулю.

2.   Анализируется очередная тетрада множителя, и множимое прибавляется к сумме частичных произведений столько раз, какова цифра, определяемая этой тетрадой.

3.   Сумма частичных произведений сдвигается на одну тетраду, и повторяются действия, указанные в п. 2, пока все цифры (тетрады) множителя не будут обработаны. Направление сдвига зависит от того, какой вариант перемножения выбран – "старшие разряды вперед" или "младшие разряды вперед".

4.   Каждая операция суммирования завершается десятичной коррекцией, соответствующей случаю суммирования двоично-десятичных чисел без избытка 6 (т.е. необходимо добавить 0110 к тем тетрадам, из которых был перенос или в которых f=1).

Пример.

Z = X * Y = 25(10) * 13(10)

= 325(10).

X = 25(10) = 0010 0101(2-10);             Y = 13(10) = 0001 0011(2-10).

Для решения примера выберем вариант перемножения "старшие разряды вперед". В соответствии с п. 1 алгоритма полагаем сумму частичных произведений P0=0. (Частичные произведения будем обозначать Pi).

Формирование второго частичного произведения - более длительная операция, поскольку вторая анализируемая тетрада содержит 3(10), поэтому каждая операция суммирования требует проверки необходимости коррекции. Вычислим P2, последовательно суммируя слагаемые, образующие P2:

Таким образом, второе частичное произведение, состоящее из трех слагаемых, имеет вид

P2

= 0111 0101.

Теперь можно вычислить сумму первого и второго частичного произведений, т.е. результат:

Окончательный результат: Z = 0011 0010 0101(2-10)

= 325(10).

Следует отметить, что в данном случае при суммировании операндов не возникало переносов, поэтому коррекция осуществлялась только по признаку f=1.



Содержание раздела