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

UptoLike

45
Регистр Р до сдв
и
га
0
1
1
1
0
1
1
1
Регистр Р после сдвига
RS
(Р,2)
0
0
0
1
1
1
0
1
CF=; SF=0; ZF=0; OF=0.
Пример 2.
Регистр Р до сдв
и
га
0
1
1
1
0
1
1
1
Регистр Р после сдвига
LS
,1)
1
1
1
0
1
1
1
0
CF=0; SF=1; ZF=0; OF=0.
Алгоритм выполнения логического сдвига не зависит от кода, в
котором работает процессор.
4.2.2. Циклический сдвиг
Циклический сдвиг выполняется таким образом, что значения вы-
двигаемых битов записываются на место освобождающихся (как бы
по циклу). В эту цепь сдвига может включаться флаг переноса, а мо-
жет и не включаться (зависит от процессора). Примем следующие
обозначения: LC – левый циклический сдвиг (left cycle); RC – правый
циклический сдвиг (right cycle).
Операция циклического сдвига будет обозначаться:
<циклический сдвиг>(<регистр>,<константа сдвига>).
Например, циклический сдвиг влево на 2 бит регистра РСМ будет
записан как LС(РСМ,2). Рассмотрим примеры выполнения цикличе-
ского сдвига. Пусть регистр Р восьмиразрядного процессора хранит
операнд 01110111.
Пример 1
(в цепь сдвига не включается флаг CF).
Регистр Р д
о сдв
и
га
0
1
1
1
0
1
1
1
Регистр Р после сдвига
L
С(Р,2)
1
1
0
1
1
1
0
1
CF=<без изменения>; SF=1; ZF=0; OF=0.
Пример 2 (в цепь сдвига не включается флаг CF).
Регистр Р д
о сдв
и
га
0
1
1
1
0
1
1
1
Регистр Р после сдвига
R
C
,1)
1
0
1
1
1
0
1
1
CF=<без изменения>; SF=1; ZF=0; OF=0.
Пример 3 (в цепь сдвига включается флаг CF, значение которого
до сдвига равно 1).
    Регистр Р до сдвига             0 1 1 1 0 1 1 1
    Регистр Р после сдвига RS(Р,2) 0 0 0 1 1 1 0 1
   CF=; SF=0; ZF=0; OF=0.
   Пример 2.
    Регистр Р до сдвига             0 1 1 1 0 1 1 1
    Регистр Р после сдвига LS(Р,1) 1 1 1 0 1 1 1 0
   CF=0; SF=1; ZF=0; OF=0.
   Алгоритм выполнения логического сдвига не зависит от кода, в
котором работает процессор.
                     4.2.2. Циклический сдвиг
   Циклический сдвиг выполняется таким образом, что значения вы-
двигаемых битов записываются на место освобождающихся (как бы
по циклу). В эту цепь сдвига может включаться флаг переноса, а мо-
жет и не включаться (зависит от процессора). Примем следующие
обозначения: LC – левый циклический сдвиг (left cycle); RC – правый
циклический сдвиг (right cycle).
   Операция циклического сдвига будет обозначаться:
   <циклический сдвиг>(<регистр>,<константа сдвига>).
   Например, циклический сдвиг влево на 2 бит регистра РСМ будет
записан как LС(РСМ,2). Рассмотрим примеры выполнения цикличе-
ского сдвига. Пусть регистр Р восьмиразрядного процессора хранит
операнд 01110111.
   Пример 1 (в цепь сдвига не включается флаг CF).
    Регистр Р до сдвига             0 1 1 1 0 1 1 1
    Регистр Р после сдвига LС(Р,2) 1 1 0 1 1 1 0 1
   CF=<без изменения>; SF=1; ZF=0; OF=0.
   Пример 2 (в цепь сдвига не включается флаг CF).
    Регистр Р до сдвига             0 1 1 1 0 1 1 1
    Регистр Р после сдвига RC(Р,1) 1 0 1 1 1 0 1 1
   CF=<без изменения>; SF=1; ZF=0; OF=0.
   Пример 3 (в цепь сдвига включается флаг CF, значение которого
до сдвига равно 1).

                                45