Файл: Сарингулян, Э. В. Арифметические и логические основы цифровых машин учеб. пособие.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 31.10.2024

Просмотров: 52

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Если Ni—N2<0, то результат суммирования отрицателен и за­ писан в дополнительном коде:

[+ 4 W + [ - 4 U = 10 -f-1— ( 4 - /V2)j = [/V, - 4 U n -

Для получения прямого кода результат необходимо преобра­ зовать.

Примеры на сложение чисел в дополнительном коде:

1.

/^

=

0,11001,

14]»о„ =

0,11001

 

 

4

=

0,00101,

[4 U

=

+

 

1,11011

 

 

 

IЛ/ХI > I А^21 [4 ]доп + [ 4 ] доп =

10,10100 =

0, 10100=

 

 

 

 

«=-------------------------1

= [ 4

+ /V2]np

 

 

 

Единица переноса

 

 

 

 

 

 

из энакооого разряда

 

 

 

 

 

 

суммы не учитывается

 

 

 

2.

4

= 0 , 1 0 1 1 1 ,

[ 4 ]доп =

0 ,1 0 1 1 1

 

 

4

= - o,i юн,

['4 ] д о п =

1 ,0 01 0 1

 

 

14

1< I /V21

[4 U + [ 4 U = i,11100 = [4

-ь лдДОП,

 

 

 

 

[4 + 4 U = 1,00100

 

3.

/V, =

— 0,10011,

[АД]доп -

1,01101

 

 

4

= — о,оюоо

[4 ]доп=

+

 

1,11000

 

 

 

 

 

[4 U + [4 U .= i1,00101 = [ 4 + 4 U

 

 

 

из

Единица переноса

 

 

 

 

 

 

знакового разряда

 

 

 

 

 

 

суммы не учитывается

 

 

 

 

 

 

[ 4

4 - Л/2]пр = 1 ,1 1 0 1 1 .

 

 

 

При сложении чисел, по абсолютному значению меньших единицы, в обратных кодах результат можно представить в виде

[ + 4 ] о б р + [ - 4 ] о б Р= 4 + [ 1 0 - 1 0 " Ч ( - 4 ) 1 =

= ю — ют + (4 — 4)-

При этом возможны случаи N\—N2> 0 или N\N2< 0.

В первом случае получается результат NiN2 в прямом коде, который отличается от правильного результата на едини­ цу младшего разряда (— 10~"г)- Поэтому для коррекции значе­ ния суммы единица переноса из знакового разряда результата не отбрасывается, а прибавляется к младшему разряду суммы

23


в отличие от слолсения чисел в дополнительном коде. Такая коррекция носит название циклического переноса. Результат суммирования молено записать

I f АМобр-f- [ - Na\nlip = 10 — 10-m + (/V, — AT) = 10~m -

(/V, - N I) = [ N X- N 3]np.

Во втором случае результат N\Nz получается отрицательным г>обратном коде

[+ N , U P-1- [ -yV 2]ooP = 1 0 - НГИ -1 [ - (А/, — iV2)| =

= Н Г т + [ - ( Л / , — АТ)] - [Л/, — А/а]пбР;

и для вывода его из арифметического устройства необходим перевод в прямой код.

Примеры на сложение чисел в обратном коде

1.

/V, =

0, 11001,

 

[ААЬбр =

о, 11001

 

 

 

 

 

 

 

_ 1

 

/Va= — 0,01010,

 

liV2loop = 1,10101

 

! Л', |

|/V,!

[,v,]06p +

[^ 21обр== 10,01110= 0,01111 =

 

 

 

 

4 A V ; M ,]np

I

f

 

 

 

 

 

Единица

циклического переноса

 

 

 

 

 

из знакового разряда суммы

 

 

 

 

 

прибавляется к младшему разря­

 

 

 

 

 

 

 

ду суммы

2.

iV, =

0,01101,

 

[АМобр - - 0,01101

 

;Va=

0,10111,

 

[Аг2]обр =

+

 

 

1,01000

 

| .V, | <Т | АА |

[ЛГ[ ],,бр+ [А^г]обр—

1,10101 = [/V, +/V,]n6p,

 

 

 

 

[/V, + Л/2]пр =

1,01010.

3.

А/, = - 0 , 1 1 0 1 1 ,

 

[ЛА,]овр =

1,00100

 

 

 

 

 

 

 

_1_

 

Wa= — 0,00001,

 

[yV2J06p =

1,11110

 

 

 

 

[/V, ]обр +

[М ]о6р=

11,00010 = 1,00011 =

 

 

 

,

= [Л ', + Л/,]о6р

I

t

 

 

 

 

 

Единица циклического переноса нз

 

 

 

 

 

знакового

разряда суммы прибавля­

 

 

 

 

 

ется

к младшему разряду суммы

[ЛА, -ь ЛА31пр = Ы 1100.

При сложении чисел в обратном коде количество цифровых разрядов слагаемых должно быть одинаковым. Выравнивание достигается добавлением нулей к слагаемому в прямом коде,

24


имеющему меньшее тесло разрядов. В противном случае ре­ зультат суммирования чисел в обратном коде получается ис­ каженным.

Анализ рассмотренных примеров позволяет сравнивать осо­ бенности сложения чисел в дополнительном и обратном кодах

иустановить целесообразность их применения.

Варифметическом устройстве с сумматором последова­ тельного действия применение обратного кода не рационально, так как при образовании единицы циклического переноса мо­ жет оказаться необходимым повторить сложение по всем разрядам суммы. В данном случае использование дополни­ тельного кода удобнее. В устройствах параллельного действия образование обратного кода инверсией разрядов прямого кода и учет переноса из знакового разряда суммы не вызывает за­ труднений [1].

При сложении чисел одинаковых знаков результат по мо­ дулю может оказаться больше единицы, т. е. произойдет вы­ ход старшего разряда суммы за допустимые пределы пред­ ставления чисел при условии, что числа представляются в ма­ шине правильными дробями. При автоматическом режиме ра­ боты вычислительная машина должна регистрировать пере­

полнение разрядной сетки, так как сумма получает искажен­ ное значение. Для этой цели под изображение знака ,в сумма­ торе ЭЦВМ отводят для двоичных разряда. Форми­ руются так называемые модифицированные прямые, допол­ нительные и обратные коды. Например, для N = 0,10001 мо­ дифицированные коды будут записаны следующим образом:

[Л/]“р = 11,10001; [А'гдоп]м=

11,01111;

[/Vj“6p - 11,01110;

для N = 0,11101- [W]“p =

[А^доп - №

р = 00,11101.

Сложение чисел в модифицированных кодах выполняется аналогично по разобранным правилам. Единица переноса из второго знакового разряда в модифицированном дополнитель­ ном коде не учитывается, а в модифицированном обратном ко­ де прибавляется по цепи циклического переноса к младшему разряду суммы.

Примеры на сложение чисел в модифицированных кодах

1. ;V ,= -0,01001,

М ]? оп =

00,01001

/V ,= — 0,10111.

 

+

[yv2] - on =

1 1 ,0 1 0 0 ]

IА , |< |yv21 [;V, ]Д"0П+ [М ]Д»0П= 11, 10010= W + W 2] - n’

[Wx + W2]“p= 11,01110.

25


N i = - 0 , 1 0 0 0 1 ,

[ / V , ] “ = 1 1 , 0 1 1 1 1

 

 

Д/2 = — 0 ,0 1 1 1 0 .

ГЛ^2]?

= 1 1 , 1 0 0 1 0

'

 

 

 

 

^ДОП

'

 

 

|Л\| >

| /va |

ГЛЛ1" + [ i V 2l“ = 1 1 1 , 0 0 0 0 1 =

1 1 ,0 0 0 0 1 =

 

 

до" .

доп

1

= [ ^

, +

№ „

 

 

Единица переноса из старшего знакового

 

 

риэряда суммы не учитывается

 

 

 

^ = = 1 1 , 1 1 1 1 1 .

 

= 0 ,0 1 0 0 1 ,

р = 0 0 ,0 1 0 0 1

 

 

Л^з = — 0 , 1 1 0 0 1 ,

№ р = 1 Ь О о п о

 

 

1-V, 1 < 1Л '2 1

[ Л М ” 0Р -ь №

Р= и , 0 1 1 1 1 = [ м + № Р-

 

 

[ л г1 + №

Р = п , 1° о о о .

 

, 4 ' , = — 0 ,1 0 1 0 1 ,

[ ^ 1 ^ = 1 1 , 0 1 0 1 0

 

 

7 V , = — 0 ,0 1 0 0 0

№ р = 1 Ы 0 П 1

 

 

р+ №

р= 111,00001 =

11,00010= М

+ М2]-6р

 

 

I_______

t

 

 

 

 

 

Единица переноса из старшего знакового разряда

 

суммы прибавляется к младшему разряду резуль­

 

 

 

тата

 

 

 

 

[ Л ^ л у « р = 1 1 , 1 1 1 0 1 .

Применение модифицированных кодов позволяет устано­ вить признак переполнения разрядной сетки машины, состоя­ щий в том, что знамения знаковых разрядов результата не совпадают: формируется сочетание двоичных цифр 01 при пе­ реполнении разрядной сетки от сложения положительных чи­ сел (положительное переполнение) либо 10 при сложении от­ рицательных чисел (отрицательное переполнение) .

Примеры на переполнение разрядной сетки при сложении чисел в модифицированных кодах

1. /V, = -0 ,1 1 0 0 1 ,

„ =

11,00111

Л'20,01111

„ „ =

4,10001_____________

„ + № „ = 1ю п 1000= 10, 1ю оо

 

Значения знаковых

разрядов не сов-

падают

Не учитывается

 

Результат сложения 10,11000 искажен.

 

26


2. yV1==— 0,01111

/V a = - 0 , 1 1 0 0 1

[/V:]o6p +

г'V2]?6p = 110, 101 10 -=

10,101 1 1

 

f

A

 

 

 

Значения знаковых

 

Циклический

разрядов

 

перенос

 

не совпадают

Результат сложения 10,10111 искажен.

 

 

3 . N , = 0 , 1 1 0 0 0

W t t p = 0 0 . 1 1 0 0 0

 

 

/V, = 0,01001

 

 

 

Значения знаковых разрядов не совпадают

Результат сложения 01,00001 искажен.

§ 2.4. Реализация арифметических операций

Сложение в машинах с фиксированной запятой

Для выполнения операции сложения числа, хранящиеся в прямом коде в запоминающем устройстве, пересылаются в арифметическое устройство. Отрицательные числа перед пода­ чей на сумматор преобразуются в дополнительный или обрат­ ный код в зависимости от принятого кода в машине. Призна­ ком отрицательного числа для формирования дополнительно­ го или обратного кода в машине служит значение знакового разряда, равное единице. Положительные числа своего изоб­ ражения не меняют, и в их знаковом разряде стоит код 0.

Поскольку при суммировании одинаковых по знаку чисел не исключено переполнение разрядной сетки, то под изображе­ ние знака числа в сумматоре АУ отводится два двоичных раз­ ряда. Код числа на сумматоре переводится в соответствующий! модифицированный код.

После выполнения операции сложения чисел в модифици­ рованных кодах производится анализ полученного результата в сумматоре на выход за пределы допустимых разрядов (ана­ лиз на переполнение). Схема, реализующая этот анализ, выра­ батывает управляющий сигнал, носящий название «сигнал ф». Пели значения знаковых разрядов суммы совпадают, сигнал ф равен нулю, что является признаком отсутствия переполнения.

Если значения знаковых

разрядов суммы не совпадают,

схема

вырабатывает сигнал

переполнения ф = 1 .

По сигналу

Ф=1

выполняется либо соответствующая коррекция вычисли­

тельного процесса, либо останов машины.

_

27