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

UptoLike

48
CF=0; SF=1; ZF=0; OF=1, т.е. возникло переполнение (есть пере-
нос из старшего числового бита, а из знакового нет).
Пример 2.
Пусть регистр Р восьмиразрядного процессора хранит
операнд 00000111.
Регистр Р до сдвига 0
0
0
0
0
1
1
1
Регистр Р после сдвига AR(Р,1) 0
0
0
0
0
0
1
1
CF=1; SF=0; ZF=0; OF=0.
До сдвига Р=7
(8)
, а после сдвига Р=3
(8)
(результат деления наце-
ло 7
(8)
на 2).
Пример 3. Пусть регистр Р восьмиразрядного процессора хранит
операнд 11100111.
Регистр Р до сдвига 1
1
1
0
0
1
1
1
Регистр Р после сдвига AL(Р,1) 1
1
0
0
1
1
1
0
CF=1; SF=1; ZF=0; OF=0.
До сдвига Р= –31
(8)
, а после сдвига Р= 62
(8)
(результат умноже-
ния (31
(8)
) на 2).
Пример 4.
Пусть регистр Р восьмиразрядного процессора хранит
операнд 11100111.
До сдвига 1
1
1
0
0
1
1
1
После сдвига AR(Р,1) 1
1
1
1
0
0
1
1
CF=1; SF=1; ZF=0; OF=0.
До сдвига Р= – 31
(8)
, а после сдвига Р= – 15
(8)
(результат деления (31
(8)
)
нацело на 2).
4.2.3.3. Алгоритм арифметического сдвига в обратном коде
Алгоритм арифметического сдвига в обратном коде выполняется
так же, как и в дополнительном коде, но при сдвиге влево значение
выдвигаемого бита записывается в младший бит регистра.
Пример
. Пусть регистр Р восьмиразрядного процессора хранит
операнд 11100111.
Регистр Р до сдвига 1
1
1
0
0
1
1
1
Регистр Р после сдвига AL(Р,1) 1
1
0
0
1
1
1
1
CF=<без изменения>; SF=1; ZF=0; OF=0.
   CF=0; SF=1; ZF=0; OF=1, т.е. возникло переполнение (есть пере-
нос из старшего числового бита, а из знакового нет).

   Пример 2. Пусть регистр Р восьмиразрядного процессора хранит
операнд 00000111.
      Регистр Р до сдвига                  0 0 0 0 0 1 1 1
      Регистр Р после сдвига AR(Р,1) 0 0 0 0 0 0 1 1
   CF=1; SF=0; ZF=0; OF=0.
   До сдвига Р=7(8), а после сдвига Р=3(8) (результат деления наце-
ло 7(8) на 2).
   Пример 3. Пусть регистр Р восьмиразрядного процессора хранит
операнд 11100111.
      Регистр Р до сдвига                  1 1 1 0 0 1 1 1
      Регистр Р после сдвига AL(Р,1) 1 1 0 0 1 1 1 0
   CF=1; SF=1; ZF=0; OF=0.
   До сдвига Р= –31(8), а после сдвига Р= – 62(8) (результат умноже-
ния (– 31(8)) на 2).
   Пример 4. Пусть регистр Р восьмиразрядного процессора хранит
операнд 11100111.
      До сдвига                            1 1 1 0 0 1 1 1
      После сдвига AR(Р,1)                 1 1 1 1 0 0 1 1
   CF=1; SF=1; ZF=0; OF=0.
   До сдвига Р= – 31(8), а после сдвига Р= – 15(8) (результат деления (– 31(8))
нацело на 2).
   4.2.3.3. Алгоритм арифметического сдвига в обратном коде
   Алгоритм арифметического сдвига в обратном коде выполняется
так же, как и в дополнительном коде, но при сдвиге влево значение
выдвигаемого бита записывается в младший бит регистра.
   Пример. Пусть регистр Р восьмиразрядного процессора хранит
операнд 11100111.
    Регистр Р до сдвига              1 1 1 0 0 1 1 1
    Регистр Р после сдвига AL(Р,1) 1 1 0 0 1 1 1 1
   CF=<без изменения>; SF=1; ZF=0; OF=0.

                                      48