Файл: Сарингулян, Э. В. Арифметические и логические основы цифровых машин учеб. пособие.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.
В первом случае получается результат Ni—N2 в прямом коде, который отличается от правильного результата на едини цу младшего разряда (— 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 |
Л'2— 0,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