Файл: Каган Б.М. Цифровые вычислительные машины и системы учеб. пособие.pdf

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

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

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

Добавлен: 09.04.2024

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

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

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

Если (G++Q - ) < 0 , то (2-|-G++Q~) < 2 и

переноса

не возникает. В этом случае из (2-22) получаем:

 

(G+ )nP + [Q )обр = (G+ + Q )обр

(2-24)

(при G+ + Q~ <

о).

 

Итак, сложение кодов согласно приведенному прави­

лу дает алгебраическую сумму в

прямом коде, если эта

сумма положительна, и в обратном коде, если она отри­ цательна.

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

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

ма положительна, и в

дополнительном

коде, если эта

сумма отрицательна.

 

 

 

 

 

 

В самом

деле,

если G~<c0 и Q ~ < 0, то согласно

(2-18)

 

 

 

 

 

 

 

 

(G

)доп +

(Q )доп =

G

Ң- 2 4- Q

+ 2

=

 

=

2 f

(G

+

Q

+ 2 ) .

 

 

Так как

— l< G ~ -fQ - <;0,

то

величина,

стоящая в

скобках, меньше двух, но больше единицы. Двойка, сто­ ящая вне скобки, образует перенос из разряда знака, ко­ торый будет отброшен. В результате получаем:

(G )доп +

(Q )доп = (С + Q

) + 2 =

(G +

Q )доп*(2-25)

Если G + > 0, а Q -< 0 , то

 

 

 

 

 

(G+)np 4- (Q )доп =

(G+ +

Q J +

2.

 

Если при этом 0 < G++Q- <; 1, то стоящая

вне скоб­

ки двойка

дает единицу переноса из

разряда

знака, ко-

73


торая отбрасывается. При этом получаем:

(G+)„p + (<Г)доп =

(G+ +

Q_ )np

(2-62)

(при G+ + Q ~> О).

 

 

Если же —1 < G + + Q ~ < 0 ,

то (G++Q - ) + 2 < 2

и пе­

реноса из разряда знака

не возникает. В этом

случае

1G-^)пр + IQ

)доп =

(G+ +

Q )доп

(2-27)

(при G+ -f QT < О)-

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

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

(<7)доп= 1,01010 (—0,10110)

(<3)доп = 1,00101 (— 0,11011)

0 , 0 1 1 1 1

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

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

Для получения признака переполнения разрядной сетки применяют модифицированные прямой, дополни­ тельный и обратный коды. Эти коды отличаются от ра­ нее рассмотренных кодов тем, что для представления знака используются два разряда. При этом знак плюс обозначается 00, а знак минус — 11.

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

74


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

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

В этих случаях модуль суммы

 

 

 

 

1 <

М <

2.

 

Сказанное иллюстрируется примерами (индексом м

обозначен модифицированный код).

 

Пример 1.

 

 

 

 

 

G =

0,10110

 

<0)^=11,01001

Q=

— 0,11011

 

(Q)“ 6p = 11,00100

G + Q =

— 1,00001

 

 

~П1,00100

(переполнение

 

,11,01001

 

1 10,01101

разрядной сетки)

 

 

—1

 

 

 

 

 

 

10,01110

 

 

 

 

 

(G-hQ)“6p == 10,01110

 

 

 

 

(О)“ о п =

11,01010

 

 

 

 

 

(Q)"on=

11,00101

 

 

 

 

 

 

+

11,01010

 

 

 

 

 

 

 

 

 

 

 

 

_______________11,00101

 

 

 

 

 

( G + Q ) “

( 1) 10,01111

 

Пример 2.

G =

 

=

10,01111

11,00011

 

 

0,10011

 

(Q)“6p=

G +

Q =

— 0,11100

 

(G)“ p =

00,10011

Q =

— 0,01001

 

+

00,10011

(нет

переполнения)

 

(G + Q)“ p =

11,00011

 

 

 

 

 

 

1 1 , 1 0 1 1 0

 

 

 

 

 

 

I f .10110

75


 

 

(G)M =

00,10011

 

 

 

 

'

' п р

 

 

 

 

 

(Q)M =11,00100

 

 

 

 

'^•'доп

*

 

 

 

 

 

+

00,10011

 

 

 

 

 

11,00100

 

 

 

 

 

 

 

 

 

 

 

 

11,10111

 

 

 

 

(G + Q)"on=n,10111

 

 

Пример 3.

 

 

 

 

 

 

0

=

0,10110

 

(G)£p = 00,10110

Q =

0 ,1 1 1 0 1

 

(Q)“P= 00,11101

 

G + Q

=

1 ,10011

 

 

 

00,10110

разрядной

 

 

+

 

 

 

01,10011

(переполнение

______________ 00,11101

 

 

сетки)

(G+ Q)“p= 01,10011

Пример 4.

 

 

 

 

 

 

G =

— 0 ,0 1 1 0 1

 

(G)o6P =

11,10010

Q =

0 ,1 0 1 0 1

 

 

(Q)np = 00,10101

G + Q =

0 ,0 1 0 0 0

 

 

 

11,10010

(нет

переполнения)

 

+

 

00,10101

 

 

 

 

100,00111

 

 

 

________I - -

->1

 

 

 

 

 

00,01000

 

 

 

( °

+ Q)np =

oo, (иooo

(G)“on= 11.10011

(Q)“p= 00,10101 11,10011

+

_______________ 00,10101

(1)00,01000 (G + Q)np =00,0100°

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

76


ния мантиссы и порядка используют модифицированные коды с двумя знаковыми разрядами.

Отметим особенности нормализации и выполнения сдвига для отрицательных чисел, представленных в до­ полнительном (обратном) коде.

У нормализованного положительного или отрицатель­ ного числа с мантиссой, изображаемой в прямом коде, цифра в старшем 5-ичном разряде мантиссы должна быть отлична от нуля. Для отрицательных мантисс, пред­ ставленных в обратном или дополнительном коде, усло­ вие нормализации | q 1/5 выполняется, если цифра

встаршем 5-ичном разряде мантиссы есть нуль.

Вслучае чисел с плавающей запятой комбинации 01 и 10 в знаковых разрядах мантиссы указывают на нару­

шение

нормализации

влево,

а комбинации цифр 00

и 1 cr.si

(cTsi^O) в младшем знаковом разряде и старшем

5-ичном цифровом

разряде

мантиссы сигнализируют

о нарушении нормализации

вправо. Для восстановле­

ния нормализации производится сдвиг мантиссы впра­ во (или влево) на нужное число разрядов, при этом порядок увеличивается (уменьшается) на соответствую­ щее число единиц.

Если отрицательные числа представляются в допол­ нительном (обратном) коде, сдвиг производится по осо­ бым правилам («модифицированный сдвиг»), с тем что­ бы в результате сдвига дополнительного (обратного) кода числа х на т 5-ичных разрядов получился дополни­ тельный (обратный) код числа Smx или S~mx соответст­ венно для сдвига влево или вправо.

При модифицированном сдвиге дополнительного (об­ ратного) кода вправо в освобождающиеся старшие раз­ ряды мантиссы записываются единицы, а при сдвиге влево единицы записываются в освобождающиеся млад­ шие разряды.

2-5. К О Д И Р О В А Н И Е Д Е С Я Т И Ч Н Ы Х Ч И С Е Л

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

77