Страница: 2/6
Мы взяли два числа a, b соответственно множимое и множитель, и произвели операцию умножения с их модулями по следующему алгоритму:
1) Анализируем разряд за разрядом множителя начиная с младших разрядов.
2) Если анализируемый разряд множителя равен единицы, то множимое прибавляется к сумматору если же разряд множителя равен нулю то мы прибавляем нулевое значение множимого (данная операция пропущена).
3) Множимое сдвигается каждый раз влево на один разряд после операции сложения.
4) Пункты 2 и 3 выполняются n раз. n-количество разрядов в множителе. Для нашего случая это 6 разрядов и как видно из примера множимое сдвигалось шесть раз до получения окончательного ответа
1.2 Определение структуры операционного автомата
Рассмотрим структура операционного автомата. Определение структуры операционного автомата нам необходим для того, чтобы мы могли определить количество и размерность используемых регистров и сумматора. В используемом нами методе умножения младшими разрядами со сдвигом множимого в перед регистры множимого и сумматора должны быть шестнадцатиразрядными, а для регистра множителя достаточно будет восьмиразрядного регистра.
Рисунок 1 - Схема структуры ОУ умножения младшими разрядами в перед со сдвигом множимого в лево
Рг1 – в регистр заносится множимое
Рг2 – в регистр заносится множитель
См – в сумматоре происходит сложение чисел
Сч – счетчик просчитывает количество выполненных операций.
УА – рассчитываемый управляющий автомат
1.3 Разработка блок схемы
Алгоритм для умножения младшими разрядами вперед со сдвигом множимого:
1) В первый регистр заносится множимое в двоичном коде.
2) Из первого регистра множимое заноситься в сумматор.
3) Во второй регистр заносится множитель.
4) Младший разряд множителя поступает в Управляющий автомат.
5) В Управляющем автомате анализируется поступившая информация.
6) Если 0, то в сумматоре происходит сдвиг вправо на один разряд. Если 1 то, происходит сложение множимого и множителя. После сложения выполняется сдвиг множимого.
7) Пункты 4,5 и 6 выполняются столько раз, сколько разрядов имеют числа.
Реализуем алгоритм в виде содержательного графа микропрограммы для двоичной системы исчисления. Согласно ГОСТа язык ГСА используется для формальной записи алгоритмов операция и имеет 1 начальную и 1 конечную вершину.
Структура ГСА показана на рисунке 2.
Таблица 1.1
№ блока |
Описание |
1 |
в Рг1 заносим множимое, в Рг2 заносим множитель, сумматор См обнуляем, а счетчику Сч присваиваем значение 8. |
2 |
определяем знак произведения путем сложения знаковых разрядов множимого и множителя по модулю два. |
3 |
Младший разряд Рг2 (множитель) сравниваем с нулем. Если младший разряд равен единице то идем к блоку 4, если же разряд равен нулю то переходим к блоку 5 |
4 |
Производим операцию сложение, к См прибавляем Рг1 в прямом коде. |
5 |
Происходит сдвиг множимого Рг2 на один разряд влево. Регистр Рг2 сдвигается на один разряд вправо. из счетчика вычитаем 1. |
6 |
Производится сравнение счетчик Сч с нулем. Если Сч = 0, то прекращаем умножение и идем к блоку 7. Если Сч неравен нулю, то продолжаем операцию умножение, переходим в блок 3. |
7 |
Итоговую сумму полученную в сумматоре См выводим как результат Z. |
Реферат опубликован: 23/11/2007