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.