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

UptoLike

124
старшей тетраде
1 1 0 1 1 0 1 0 1 0 0 0 1 1 результат, равный
– 370
(10)
,
верен
4.10. Выполнение операций сдвига в BCD-кодах
на один двоичный разряд
Операции сдвига используются в алгоритмах умножения и деле-
ния. Поскольку в дальнейшем алгоритмы умножения и деления бу-
дут рассматриваться только в BCD-коде 8421, то и операции сдвига
на один двоичный разряд будем рассматривать только в этом коде.
Операция сдвига влево.
Сдвиг операнда в BCD-коде влево на один двоичный разряд уве-
личивает его значение в два раза. Рассмотрим вначале операцию
сдвига влево на конкретных примерах.
Пример 1.
Сдвинуть влево тетраду, содержащую 2
(10)
. В результа-
те должно получиться 4
(10)
.
CF
Тетрада
Комментарий
0
0
1
0
5
0
1
0
0
A
L
(5
8421
,1
)
0
1
0
0
результат сдвига
Пример 2. Сдвинуть влево тетраду, содержащую 5
(10)
. В результа-
те должно получиться 10
(10)
(т.е. 0 в этой тетраде и 1 переноса в сле-
дующую тетраду).
CF
Тетрада
Комментарий
0
1
0
1
5
1
0
1
0
A
L
(5
,1
)
0
1
1
0
коррекция +110
(2)
1
0
0
0
0
результат сдвига
Пример 3. Сдвинуть влево тетраду, содержащую 8
(10)
. В результа-
те должно получиться 16
(10)
(т.е. 8 в этой тетраде и 1 переноса в сле-
дующую тетраду).
CF
Тетрада
Комментарий
1
0
0
0
8
1
0
0
0
0
A
L
(5
,1
)
                                                            старшей тетраде
1     1   0   1   1   0   1   0   1   0     0   0   1   1   результат, равный
                                                            – 370(10), верен

      4.10. Выполнение операций сдвига в BCD-кодах
                на один двоичный разряд
   Операции сдвига используются в алгоритмах умножения и деле-
ния. Поскольку в дальнейшем алгоритмы умножения и деления бу-
дут рассматриваться только в BCD-коде 8421, то и операции сдвига
на один двоичный разряд будем рассматривать только в этом коде.
   Операция сдвига влево.
   Сдвиг операнда в BCD-коде влево на один двоичный разряд уве-
личивает его значение в два раза. Рассмотрим вначале операцию
сдвига влево на конкретных примерах.
   Пример 1. Сдвинуть влево тетраду, содержащую 2(10). В результа-
те должно получиться 4(10).
                  CF Тетрада Комментарий
                     0 0 1 0 58421
                     0 1 0 0 AL(58421,1)
                     0 1 0 0 результат сдвига
   Пример 2. Сдвинуть влево тетраду, содержащую 5(10). В результа-
те должно получиться 10(10) (т.е. 0 в этой тетраде и 1 переноса в сле-
дующую тетраду).
               CF Тетрада           Комментарий
                    0 1 0 1 58421
                    1 0 1 0 AL(58421,1)
                    0 1 1 0 коррекция +110(2)
                1 0 0 0 0 результат сдвига
   Пример 3. Сдвинуть влево тетраду, содержащую 8(10). В результа-
те должно получиться 16(10) (т.е. 8 в этой тетраде и 1 переноса в сле-
дующую тетраду).
               CF    Тетрада           Комментарий
                    1 0 0 0 88421
                1 0 0 0 0 AL(58421,1)

                                      124