Файл: Сарингулян, Э. В. Арифметические и логические основы цифровых машин учеб. пособие.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 31.10.2024
Просмотров: 59
Скачиваний: 0
Пример на выполнение операции умножения в обратном коде
Множимое |
[Л', |„г> |
-1,10011 |
Передача |
разрядов множи |
|||||
К -------------------------------1 |
|||||||||
теля, начиная с младшего |
|||||||||
(-\ Множитель |
|.V3]„p |
-0,01111 |
|
|
|
|
|
||
Знак произведения |
|
|
Доп. |
разряд |
|
||||
|
|
|
|
|
|
||||
Разряды |
сумматора |
|
0 0 , 0 0 0 0 0 |
|
0 |
|
Y |
||
Первое |
частичное |
произведение |
|
|
|
+ |
|||
|
|
|
1 |
||||||
в м. обр. к. |
|
1 1 , 0 1 1 0 0 |
|
1 |
|
||||
Первая сумма частичных произве |
|
|
|
|
|
||||
дений |
|
|
|
1 1 , 0 1 1 0 0 |
|
1 |
|
|
|
Сдвиг |
|
|
|
1 1 , 1 0 1 1 0 |
|
0 |
|
|
|
Второе |
частичное |
произведение |
^ 1 1 , 0 1 1 0 0 |
|
|
+ |
|
||
в м. обр. |
к. |
|
1 |
1 |
|
|
|||
|
|
|
|
1 1 1 , 0 0 0 1 0 |
|
J |
+ |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
1 |
|
|
|
Вторая сумма частичных произве |
1 |
|
t |
|
|
||||
|
|
|
|
|
|||||
дений |
il3 |
|
|
1 1 , 0 0 0 1 1 |
|
0 |
|
|
|
Сдвиг |
|
|
-> 1 1 , 1 0 0 0 1 |
|
1 |
|
|
||
Третье |
частичное |
произведение |
; 1 1 , 0 1 1 0 0 |
|
|
+ |
|
||
в м. обр. |
к. |
|
|
1 |
|
|
|||
|
|
|
|
1 1 0 , 1 1 1 1 0 |
|
? |
+ |
|
|
|
|
|
|
1 |
|
|
|||
|
|
|
|
|
1 |
|
|
||
Третья сумма частичных произве |
|
f |
|
|
|||||
дений |
Т:| |
|
|
1 0 , 1 1 1 1 0 |
|
1 |
|
|
|
Сдвиг |
|
|
|
1 1 , 0 1 1 1 1 |
|
0 |
|
|
|
Четвертое |
частичное произведе |
|
|
|
|
|
|||
ние в м. |
обр. к. |
|
1 1 , 0 1 1 0 0 |
|
1 |
|
|
||
|
|
|
|
1 1 0 , 1 1 0 1 1 |
|
1 ж |
|
||
|
|
|
|
1 |
|
1 |
1 |
|
|
Четвертая сумма частичных про |
1 |
|
f |
|
|
||||
|
|
|
|
|
|||||
изведений |
|
1 0 , 1 1 1 0 0 |
|
0 |
|
|
|||
Сдвиг S4 |
|
|
-*■ 1 1 , 0 1 1 1 0 |
|
0 |
|
о |
||
Сдвиг ^4 |
|
|
->■ 1 1 , 1 0 1 1 1 |
|
0 |
4 - |
|||
Округление |
|
|
1 1 , 1 1 1 1 1 |
|
|
||||
|
|
|
0 |
+ |
|
||||
|
|
|
|
1 1 1 , 1 0 1 1 0 |
|
0 |
|
|
|
|
|
|
|
|
|
1 |
+ |
|
|
|
|
|
|
|
|
А |
|
|
|
|
|
|
|
11,10110 |
|
|
|
|
|
|
|
|
|
В сумматоре |
|
|
|
11,10110=. [ЛГ,.М,]“6р
11,01001= [JVx.JVa]“p
38
При суммировании частичных произведений в обрат ном коде отрицательное произведение получается также в об ратном коде. Для округления в этом случае предварительно анализируется значение последнего дополнительного разряда. Если он равен нулю, то выполняется вычитание единицы из этого разряда, в противном случае значение произведения ос тается неизменным. В рассматриваемом примере при послед нем сдвиге дополнительный разряд принимает значение нуля. Вычитание единицы заменяется прибавлением к результату в сумматоре величины 11,111110.
Если для изображения отрицательных чисел используется дополнительный код, то умножение выполняется одним из ис кусственных приемов. Рассмотрим умножение в дополнитель ных кодах с двумя корректирующими шагами. Умножение аб солютных величин выполняется по схеме, начиная с младших разрядов множителя (множитель сдвигается вправо). Каждая очередная сумма частичных произведений также сдвигается вправо, причем младшие я разрядов не теряются, а запоми наются в регистре арифметического устройства. Таким обра зом, будет получено полное 2я-разрядное произведение двух я-разрядных сомножителей. В данном варианте реализации умножения множимое остается неподвижным. Знак форми руется в результате сложения знаковых разрядов сомножите лей и добавляется к окончательному значению результата. При перемножении цифровых разрядов сомножителей без уче та алгебраических знаков будет получен результат, который затем необходимо корректировать для образования дополни тельного кода величины искомого произведения. Могут встре титься следующие случаи:
1) Если yV, > 0 и то результат положителен и равен I Ni I|Л;2|, т. е. без дополнительной коррекции получаем абсо лютную величину произведения.
2) |
Если /V) > 0 , |
a N2< 0, |
то результат равен |
|
IN, |(1 — |/V21) |
= |Wj| — |JVj ||N31, |
|
где |
(1 -|Л^|) = |
[Л/2]Д011. |
|
Так как произведение отрицательное, то разряды результата
должны быть выражены через дополнение |
до единицы, |
т. е. |
|
равны 1— |Л/-! ||N21— [-/V[ •М]ДоиДля этого |
необходимо |
вве |
|
сти коррекцию, прибавляя к результату величину 1— 1/V,!. |
|||
3) Если Mi<0, а |
0, то результат равен |
|
(1 — (A g)|/V 2|==|'V2|— l/V.l |:V,|,
где ( 1- I 'V j D H Л\]доп.
Так как произведение отрицательное, то для получения величи ны 1— |Л/а! |/V21=: |Л/, Л^2]дОП нужно добавить коррекцию значения 1— |М, |.
39
4) Если jVi<0 и N2< 0, то произведение ра-вно
(1 - I 'V .l h l -|/V ,|) = 1 — j yY, [ — |yV21+ |yV, 11 yV21.
Учитывая, что результат положителен, его изображение должно быть представлено величиной!/V, ||/V2|. Для этого не обходимо провести два корректирующих шага, содержащих добавление ! /V, |и |/V, |. В итоге получим величину 1-(-|.'V,| |М|,
в которой единица переполнения не принимается |
во внима |
ние. Значение |/V, 11 Л'2|есть абсолютная величина |
произве |
дения. |
|
Пример на выполнение операции умножения в дополнительных кодах с коррекцией
1 |
Множимое |
[/V,|11р = 1,10011 |
|
[Лг,]доп |
-М,01101 |
|||
|
|
|
|
Передача |
разрядов Лга, |
|||
о |
Множитель |
|
[Лг2]„р -=0,01111 |
|||||
|
начиная с младшего |
|||||||
0 |
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
Знак- |
произведения |
|
|
|
|
|||
Разряди сумматора'. |
|
+ |
00000 |
|||||
Первое частичное произведение в д. к. |
|
01101 |
||||||
Первая сумма |
Х4 |
|
|
01101 |
||||
Сдвиг Xj |
|
|
|
-4- |
001101 |
|||
Второе частичное произведение в д. к. |
01101 |
|||||||
|
||||||||
Вторая |
сумма |
|
|
|
|
100111 |
||
Сдвиг |
|
|
|
|
|
0100111 |
||
Третье |
частичное произведение в д. к. |
~ |
01101 |
|||||
Третья |
сумма |
|
|
|
|
1011011 |
||
Сдвиг S3 |
|
|
|
-*01011011 |
||||
Четвертое частичное произведение в д.к. |
+ |
01101 |
||||||
Четвертая сумма |
^4 |
|
11000011 |
|||||
Сдвиг |
X, |
|
|
|
-*• |
011000011 |
||
Сдвиг И4 |
|
|
|
|
0011000011 |
|||
Корреляция |
1—•|Лг3 | |
|
+ |
10001 |
||||
|
|
|
1 |
]ДОП |
" ' |
1,1011100011 |
||
|
|
|
|
|
|
t |
|
1
1
1
1
0
|;V,-./V2|np— 1,0100011101
Пример на выполнение операции умножения в дополнительных кодах с двумя коррекциями
|
Множимое |
t [Лг, ],,r,= 1J0101 |
|
[Лт |
1,01011 |
||
__________________ | |
|
[Л'5]ди„ - 1,00011 |
|||||
О |
Множитель |
[ |
|пр =1,11101 |
|
|||
Передача разрядов |
|||||||
ак |
произведения |
|
|
|
|
|
|
Разряды сумматора |
|
|
00000 |
|
|||
Первое |
частичное |
произведение в д. к. |
|
0ПП1 |
1 |
||
Первая |
сумма |
|
|
|
01011 |
||
|
|
|
|
||||
Сдвиг |
^ |
|
|
|
001011 |
|
|
Второе частичное произведение в д. к. |
|
01011 |
1 |
||||
Вторая |
сумма |
|
|
|
100001 |
|
|
Сдвиг |
|
|
|
-ч. |
0100001 |
|
|
Сдвиг |
|
|
|
~ |
00100001 |
0 |
|
Сдвиг |
|
|
|
|
000100001 |
0 |
|
Сдвиг |
|
|
|
|
0000100001 |
0 |
|
Первая |
коррекция |
|yVi| |
|
10101 |
|
||
|
|
|
|
|
+ |
1011000001 |
|
Вторая |
коррекция |
|Л2 | |
11101 |
|
|||
|
|
||||||
|
|
|
|
|
|
11001100001 |
|
Не учитывается |
|
|
|
|
|
||
|
|
|
|
[-V. АЧ доп = [ЛГ,N , ] „р = |
0,1001100001 |
Деление в машинах с фиксированной запятой
Операция деления реализуется в машинах последова тельностью действий вычитания и сдвигов. Вычитание заме няется сложением обратного или дополнительного кода. Ал горитм деления состоит в том, что делитель вначале вычитает ся из делимого, а затем из образующихся остатков, которые сдвигаются на каждом шаге влево на одни разряд. Алгоритм реализуется основными двумя схемами с восстановлением остатка и без восстановления остатка. В первом случае при получении в процессе деления отрицательного остатка восста навливается предыдущий положительный остаток для обра-
41