- •Лабораторная работа № 4 построение схем умножения чисел, представленных в форме с фиксированной запятой, на двоичных сумматорах Цель задания
- •Постановка задачи
- •Содержание отчета
- •Методические указания
- •§ 5.1. Методы умножения двоичных чисел
- •То умножение начинается со старшего разряда и в каждом такте сдвигается влево сумма частных произведений. Схема множительного устройства представлена на рис. 5.1,г.
- •При последовательном выполнении — в виде многократно повторяющегося по количеству разрядов цикла
- •§ 5.2. Умножение чисел, представленных в форме с фиксированной запятой, на двоичном сумматоре прямого кода
- •§ 5.3. Особенности умножения чисел, представленных в форме с плавающей запятой
- •При выполнении операции умножения может иметь место ряд особых случаев. Например:
- •§ 5.4. Умножение чисел, представленных в форме с фиксированной запятой, на двоичном сумматоре дополнительного кода
- •Таким образом, на сумматоре дополнительного кода в процессе перемножения машинных изображений операндов получаем одновременно знаковую и цифровую части произведения.
- •§ 5.5. Умножение чисел на двоичном сумматоре обратного кода
- •Варианты
§ 5.3. Особенности умножения чисел, представленных в форме с плавающей запятой
Для чисел, представленных в форме с плавающей запятой, обязательным является представление в виде мантиссы и порядка (характеристики). При операции умножения действия, выполняемые над мантиссами и порядками, различны: мантиссы перемножаются, порядки складываются.
Рис. 5.3. Структурная схема множительного устройства с плавающей запятой
Очевидно, что результат умножения может получиться ненормализованным, тогда потребуется нормализация с соответствующей коррекцией порядка результата. Следовательно, структурная схема множительного устройства должна измениться (рис. 5.3).
Рассмотрим пример выполнения операций умножения чисел, заданных в прямом коде.
Пример 5.2. Перемножить числа А = — 0,11001*2- 3 и В = 0,10011*2+1
В качестве множительного устройства используется схема, показанная на рис. 5.3, где РгА и РгВ — соответственно регистры для порядков рA и рв.
Р е ш е н и е. Мантиссы перемножаются по правилам, рассмотренным для чисел, представленных в форме с фиксированной запятой. Для перемножения мантисс используется сумматор прямого кода, а для сложения порядков — сумматор обратного кода.
Сначала записываются машинные изображения чисел:
[mA]пр== 1,11001; [pA]об= 1,100;
[mB]пр== 0,10011; [pB]об -0,001.
Последовательность действий в процессе выполнения операции умножения мантисс представим в табл. 5.2.
После выполнения указанных действий находится мантисса произведения [mC]пр= 1,0111011011.
Одновременно с этим над порядками производится операция сложения:
[pC]об = [pA]об + [pB]об = 1,100 + 0,001 = 1,101.
Так как мантисса результата не удовлетворяет условию нормализации (нарушена левая граница: =1, =0), то производится сдвиг мантиссы влево на один разряд: [m`C]пр = 1,1110110110, и коррекция порядка [p`C]o6 = [pC]об+ 1,110 = 1,101 + 1,110=1,110.
Таблица 5.2
Знак результата |
Сумматор |
Регистр В |
Примечание |
00000 |
10011 |
||
+11001 |
|
||
|
11001 |
|
|
|
011001 |
01001 |
|
|
+11001 |
|
|
|
1001011 |
|
|
|
1001011 |
00100 |
|
|
01001011 |
00010 |
|
|
001001011 |
00001 |
|
|
+11001 |
|
|
|
111011011 |
|
|
|
0111011011 |
00000 |
Конец |
Если сумматор мантисс содержит только п разрядов, то после округления получается исходный результат.
Ответ: С= — 0,11110* 2-3.
При выполнении операции умножения может иметь место ряд особых случаев. Например:
если один из сомножителей равен нулю, то произведение также равно нулю. Следовательно, необходимо предусмотреть блокировку выполнения алгоритма умножения и формировать результат, равный нулю;
если порядок результата равен наибольшей отрицательной величине, то необходимо формировать машинный нуль.
Эти особые случаи можно предусмотреть в алгоритме операции введением анализатора сомножителей на нуль в начале операции (первый случай) или коррекцией произведения на основании признаков результата (второй и третий случаи).