ВУЗ:
Составители:
47
Регистр Р п
осле сдвига
A
L
(Р,
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
Регистр Р п
осле сдвига
A
R
(Р,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
Регистр Р п
осле сдвига
A
L
(Р,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
Регистр Р п
осле сдвига
A
L
(Р,
1
)
1
1
1
0
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
Страницы
- « первая
- ‹ предыдущая
- …
- 46
- 47
- 48
- 49
- 50
- …
- следующая ›
- последняя »
