Описание процессора i8086 для программиста

SHL – логический сдвиг влево


D0 /4

SHL r/m8, 1

логический сдвиг r/m8 влево на 1 разряд

D2 /4

SHL r/m8, CL



логический сдвиг r/m8 влево на CL разрядов

D1 /4

SHL r/m16, 1

логический сдвиг r/m16 влево на 1 разряд

D3 /4

SHL r/m16, CL

логический сдвиг r/m16 влево на CL разрядов

Описание.

Эта инструкция производит логический

(он же арифметический – см. инструкцию SAL) сдвиг содержимого своего операнда влево на указанное вторым операндом число разрядов.

Сдвиг выполняется по следующей схеме:

---¬   ----------¬ 

¦CF¦<--+ операнд ¦<- 0

L---   L----------    

Имеются две разновидности сдвига: одноразрядный и многоразрядный. В последнем случае количество разрядов, на которое производится сдвиг, должно быть предварительно занесено в регистр CL.

Флажок CF содержит значение последнего выдвинутого из операнда разряда.

Значение флажка OF в операции многоразрядного сдвига не определено. В операции одноразрядного сдвига он представляет собой результат операции “исключающее ИЛИ” между значением старшего разряда результата и содержимым флажка CF после выполнения сдвига. Таким образом, единичное значение флажка OF свидетельствует о том, что содержимое старшего разряда результата отличается от его исходного значения, а нулевое значение – что старший разряд операнда не изменился.

Флажки SF, ZF и PF устанавливаются в соответствии с полученным результатом.

Значение флажка AF не определено.



Содержание раздела