Алгоритмы умножения № 3

3. Алгоритм характеризуется тем, что для частичной суммы используются регистр двойной разрядности, а для множителя и множимого - одинарной, равной N. Результат хранится в регистре частичной суммы.

Пусть А – множимое, В – множитель, D – частичная сумма.

 

 

       
 
 
   

 


Пример:

Пусть A = 610 = 01102 (множимое);

B = 310 = 00112 (множитель);

D = 000000002 (частичная сумма)

 

№ такта Действие Флаг [C]
Сдвиг D влево D = 0|00000000
Сдвиг В влево B = 0|0110
Сдвиг D влево D = 0|00000000
Сдвиг В влево B = 0|1100
Сдвиг D влево D = 0|00000000
Сдвиг В влево B = 1|1000
[C] = 1, след. Прибавляем множимое к частичной сумме D = D + A
8. Сдвиг D влево D = 0|00001100
9. Сдвиг В влево B = 1|0000
10. [C] = 1, след. Прибавляем множимое к частичной сумме D = D + A

 

 

Результат в D: 00010010. Нетрудно видеть, что 000100102 = 1810.