Файл: Сарингулян, Э. В. Арифметические и логические основы цифровых машин учеб. пособие.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[ •М]ДоиДля этого

необходимо

вве­

сти коррекцию, прибавляя к результату величину 11/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