Реферат: Синтез микропрограммного управляющего автомата
2.2 Алгоритм умножения первым способом
Умножение с младших разрядов множителя со сдвигом частных сумм вправо.
В каждом такте цикла умножения первым способом необходимо:
2.1 Сложить множимое с предыдущей частной суммой, если очередной разряд множителя равен 1, и результат (новую частную сумму) запомнить; в случае если очередной разряд множителя равен 0 суммирование не выполнять;
2.2 Уменьшить вдвое частную сумму, что равносильно сдвигу ее на один разряд вправо.
3 Ручной подсчет
Выполним ручной подсчет в соответствии с выше указанным алгоритмом.
В качестве множителя возьмём число 9, а в качестве множимого 13.
3.1 Сомножители положительные (A>0, B>0)
A = 9 = 10012 , Апк = 0,1001, Адк = 0,1001
B = 13= 11012 , Впк = 0,1101, Вдк = 0,1101
3.1.1 Определим знак произведения:0 + 0 = 0
3.1.2 Перемножим модули сомножителей:
Таблица 1
Множимое | Множитель | Сумматор | Пояснения |
0,1101 | 0,1001 | 0,00000000 0, 11010000 0,11010000 | Сложение |
0,01101000 | Сдвиг | ||
0,0100 | 0,00110100 | Сдвиг | |
0,0010 | 0,00011010 | Сдвиг | |
0,0001 | 0,00011010 0,11010000 0,11101010 | Сложение | |
0,01110101 | Сдвиг |
Получили псевдопроизведение: 0,01110101
3.1.3 Коррекция не нужна, так как оба множителя положительные.
3.1.4 Присвоение произведению знака:
(A*B)дк =0,01110101
(A*B)пк =0,01110101
A*B = (9)*(13) = 117 = 11101012
3.2 Сомножители разных знаков (А<0, B>0)
A =-9=-10012 , Апк = 1,1001, Адк = 1,0111
B =13= 11012 , Впк = 0,1101, Вдк = 0,1101
3.2.1 Определим знак произведения: 1 + 0 = 1
3.2.2 Перемножим модули сомножителей:
Таблица 2
Множимое | Множитель | Сумматор | Пояснения |
0,1101 | 0,0111 | 0,00000000 0, 11010000 0,11010000 | Сложение |
0,01101000 | Сдвиг | ||
0,0011 | 0,01101000 0,11010000 1,00111000 | Сложение | |
0,10011100 | Сдвиг | ||
0,0001 | 0,10011100 0,11010000 1,01101100 | Сложение | |
0,10110110 | Сдвиг | ||
0,0000 | 0,01011011 | Сдвиг |
Получили псевдопроизведение: 0,01011011
3.2.3 Произведём коррекцию (прибавим к псевдопроизведению Вдк ):
0,01011011
Вдк = 0,001 1 0000