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

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

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

 

 
 

 


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

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

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

 

 

№ такта Действие Флаг [C]
Сдвиг В вправо B = 0001|1
[C] = 1, след. прибавляем множимое к частичной сумме D = D + A
Сдвиг A влево A = 0|00001100
Сдвиг В вправо B = 0000|1
[C] = 1, след. прибавляем множимое к частичной сумме D = D + A
Сдвиг A влево A = 0|00011000
Сдвиг В вправо B = 0000|0
Сдвиг A влево A = 0|00110000
Сдвиг В вправо B = 0000|0
Сдвиг A влево A = 0|01100000

 

 

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