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

UptoLike

47
Регистр Р п
осле сдвига
A
L
,
1
)
0
1
1
1
0
CF=<без изменения>; SF=0; ZF=0; OF=1, т.е. возникло перепол-
нение (старший сдвигаемый числовой бит равен 1).
Пример 2.
Пусть регистр Р восьмиразрядного процессора хранит
операнд 00000111.
Регистр Р д
о сдв
и
га
0
Регистр Р п
осле сдвига
A
R
,1)
0
CF=1; SF=0; ZF=0; OF=0.
До сдвига Р=7
(8)
, а после сдвига Р=3
(8)
(результат деления 7
(8)
на-
цело на 2).
Пример 3.
Пусть регистр Р восьмиразрядного процессора хранит
операнд 10000111.
Регистр Р д
о сдв
и
га
0
0
0
1
Регистр Р п
осле сдвига
A
L
,1)
0
0
1
1
CF=1; SF=1; ZF=0; OF=0.
До сдвига Р= –7
(8)
, а после сдвига Р= 16
(8)
(результат умноже-
ния 7
(8)
на 2).
4.2.3.2. Алгоритм арифметического сдвига
в дополнительном коде
При арифметическом сдвиге в дополнительном коде сдвигаются
все биты, включая знаковый бит.
При сдвиге влево освобождающиеся биты заполняются нулями.
Возможно возникновение переполнения, которое определяется про-
цессором, одним из тех способов, что и при сложении (вычитании).
При сдвиге вправо знаковый бит остается на месте, и его значение
передается в старший числовой бит. Рассмотрим примеры выполне-
ния арифметического сдвига в дополнительном коде.
Пример 1.
Пусть регистр Р восьмиразрядного процессора хранит
операнд 01110111.
Регистр Р д
о сдв
и
га
0
1
1
1
Регистр Р п
осле сдвига
A
L
,
)
1
1
1
0
    Регистр Р после сдвига AL(Р,1)      0 1 1 0 1 1 1 0

   CF=<без изменения>; SF=0; ZF=0; OF=1, т.е. возникло перепол-
нение (старший сдвигаемый числовой бит равен 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. Пусть регистр Р восьмиразрядного процессора хранит
операнд 10000111.
     Регистр Р до сдвига              1 0 0 0 0 1 1 1
     Регистр Р после сдвига AL(Р,1) 1 0 0 0 1 1 1 0

  CF=1; SF=1; ZF=0; OF=0.
  До сдвига Р= –7(8), а после сдвига Р= –16(8) (результат умноже-
ния 7(8) на 2).
            4.2.3.2. Алгоритм арифметического сдвига
                       в дополнительном коде
   При арифметическом сдвиге в дополнительном коде сдвигаются
все биты, включая знаковый бит.
   При сдвиге влево освобождающиеся биты заполняются нулями.
Возможно возникновение переполнения, которое определяется про-
цессором, одним из тех способов, что и при сложении (вычитании).
   При сдвиге вправо знаковый бит остается на месте, и его значение
передается в старший числовой бит. Рассмотрим примеры выполне-
ния арифметического сдвига в дополнительном коде.
   Пример 1. Пусть регистр Р восьмиразрядного процессора хранит
операнд 01110111.
     Регистр Р до сдвига                0 1 1 1 0 1 1 1
     Регистр Р после сдвига AL(Р,1)     1 1 1 0 1 1 1 0

                                 47