ВУЗ:
Составители:
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
Страницы
- « первая
- ‹ предыдущая
- …
- 47
- 48
- 49
- 50
- 51
- …
- следующая ›
- последняя »
