RCL – циклический сдвиг влево через флажок переноса
D0 /2 | RCL r/m8, 1 | циклический сдвиг r/m8 влево на 1 разряд через CF | |||
D2 /2 | RCL r/m8, CL | циклический сдвиг r/m8 влево на CL разрядов через CF |
| ||
D1 /2 | RCL r/m16, 1 | циклический сдвиг r/m16 влево на 1 разряд через CF | |||
D3 /2 | RCL r/m16, CL | циклический сдвиг r/m16 влево на CL разрядов через CF |
Описание.
Эта инструкция производит циклический сдвиг содержимого своего операнда влево через флажок переноса на указанное вторым операндом число разрядов.
Сдвиг выполняется по следующей схеме:
------------------------¬
¦ ---¬ ----------¬ ¦
L-+CF¦<----+ операнд ¦<--
L--- L----------
Имеются две разновидности сдвига: одноразрядный и многоразрядный. В последнем случае количество разрядов, на которое производится сдвиг, должно быть предварительно занесено в регистр CL.
Флажок CF содержит значение последнего выдвинутого из операнда разряда.
Значение флажка OF в операции многоразрядного сдвига не определено. В операции одноразрядного сдвига он представляет собой результат операции “исключающее ИЛИ” между значением старшего разряда результата и содержимым флажка CF после выполнения сдвига. Таким образом, единичное значение флажка OF свидетельствует о том, что содержимое старшего разряда результата отличается от его исходного значения, а нулевое значение – что старший разряд операнда не изменился.
Флажки SF, ZF, AF и PF не изменяются.