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

SAL – арифметический сдвиг влево


D0 /4

SAL r/m8, 1

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

D2 /4

SAL r/m8, CL



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

D1 /4

SAL r/m16, 1

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

D3 /4

SAL r/m16, CL

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

Описание.

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

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

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

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

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

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

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

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

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

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



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