Основы арифметики цифровых процессоров. Вашкевич Н.П - 123 стр.

UptoLike

122
ния. Рассмотрим примеры сложения (дополнительный код) операн-
дов в BCD-кодах.
Пример 1. Сложить X+Y в процессоре, работающем в коде 8421
в формате целых чисел со знаком (под знак отводится одна тетрада,
а под числовые разрядытри тетрады).
X=645
(10)
; [X
8421
]
2
=011001000101;
Y=475
(10)
; [Y
8421
]
2
=010001110101.
CF Знак Тетрада 3 Тетрада 2 Тетрада 1 Комментарий
* 0 1 1 0 0 1 0 0 0 1 0 1 [X
8421
]
2
* 0000 0 1 0 0 0 1 1 1 0 1 0 1 [Y
8421
]
2
* 0000 1 0 1 0 сложение младших
тетрад Х
1
+Y
1
+CF
0
* 0000 0 1 1 0 так как (Х
1
+Y
1
+CF
0
)
8421
>
>(1001
(2)
=9
(10)
), коррек-
ция +0110
(2)
0000 1 0 0 0 0 результат коррекции
* 0000 0 1 1 0 0 0 0 0 0 сложение средних
тетрад Х
2
+Y
2
+CF
1
* 0000 0 1 1 0 0 0 0 0 так как (Х
2
+Y
2
+CF
1
)
8421
>
>(1001
(2)
=9
(10)
), коррек-
ция +0110
(2)
* 0000 1 0 0 1 0 0 0 0 0 результат коррекции
0 0000 1 0 1 1 0 0 1 0 0 0 0 0 сложение старших
тетрад Х
3
+Y
3
+CF
2
0 0000 0 1 1 0 0 0 1 0 0 0 0 0 так как (Х
2
+Y
2
+CF
1
)
8421
>
>(1001
(2)
=9
(10)
), коррек-
ция +0110
(2)
0 1111 0 0 0 1 0 0 1 0 0 0 0 0 результат коррекции
0 1111 0 0 0 1 0 0 1 0 0 0 0 0 переполнение (перенос
из старшей тетрады
в знак равен 1, а из зна-
ка в CF равен 0) OF=1
Пример 2. Сложить X+Y в процессоре, работающем в коде 8421+3
в формате целых чисел со знаком (под знак отводится одна тетрада, а
под числовые разрядытри тетрады).
X= –645
(10)
; [X
8421+3
]
2
=011010001000;
Y=275
(10)
; [Y
8421+3
]
2
=010110101000.
ния. Рассмотрим примеры сложения (дополнительный код) операн-
дов в BCD-кодах.
   Пример 1. Сложить X+Y в процессоре, работающем в коде 8421
в формате целых чисел со знаком (под знак отводится одна тетрада,
а под числовые разряды – три тетрады).
   X=645(10); [X8421]2=011001000101;
   Y=475(10); [Y8421]2=010001110101.
CF   Знак       Тетрада 3        Тетрада 2          Тетрада 1          Комментарий
*           0     1 1 0      0     1 0 0        0     1 0 1      [X8421]2
*    0000   0     1 0 0      0     1 1 1        0     1 0 1      [Y8421]2
*    0000                                       1     0 1 0      сложение младших
                                                                 тетрад Х1+Y1+CF0
*    0000                                       0    1   1   0   так как (Х1+Y1+CF0)8421>
                                                                 >(1001(2)=9(10)), коррек-
                                                                 ция +0110(2)
     0000                                 1     0    0   0   0   результат коррекции
*    0000                0   1    1   0   0     0    0   0   0   сложение средних
                                                                 тетрад Х2+Y2+CF1
*    0000                    0    1   1   0     0    0   0   0   так как (Х2+Y2+CF1)8421>
                                                                 >(1001(2)=9(10)), коррек-
                                                                 ция +0110(2)
*    0000                1   0    0   1   0     0    0   0   0   результат коррекции
0    0000   1    0   1   1   0    0   1   0     0    0   0   0   сложение старших
                                                                 тетрад Х3+Y3+CF2
0    0000   0    1   1   0   0    0   1   0     0    0   0   0   так как (Х2+Y2+CF1)8421>
                                                                 >(1001(2)=9(10)), коррек-
                                                                 ция +0110(2)
0    1111   0    0   0   1   0    0   1   0     0    0   0   0   результат коррекции
0    1111   0    0   0   1   0    0   1   0     0    0   0   0   переполнение (перенос
                                                                 из старшей тетрады
                                                                 в знак равен 1, а из зна-
                                                                 ка в CF равен 0) OF=1
   Пример 2. Сложить X+Y в процессоре, работающем в коде 8421+3
в формате целых чисел со знаком (под знак отводится одна тетрада, а
под числовые разряды – три тетрады).
   X= –645(10); [X8421+3]2=011010001000;
   Y=275(10); [Y8421+3]2=010110101000.


                                          122