Все команды сдвигов имеют формат КОП mem, reg, count,
где count - счетчик числа сдвигов. Этот операнд может быть указан как непосредственный операнд - 1 (статический сдвиг) или как регистр CL. В командах сдвига в коде операции вместо бита d стоит бит c. Если с=0, то осуществляется сдвиг на один разряд. Если с=1, то число сдвигов задано в регистре CL.
В циклических сдвигах выдвигаемый бит помещается на место освобождающегося бита.
Команда RCL - циклический сдвиг влево через перенос:
CF
¾¾
ë________________________
Команда RCR - циклический сдвиг вправо через перенос:
CF
®
¾¾®
________________________û
Команда ROL - циклический сдвиг влево:
CF
¾¾
ë______¯_________________
Команда ROR - циклический сдвиг вправо:
¾¾®
CF
________________¯_____
Команды SAL, SHL - арифметический и логический сдвиги влево:
CF
¾
¾¾
Освобождающийся бит заполняется 0.
Команда SAR - арифметический сдвиг вправо:
®
¾¾®
CF
½___¯
Левый освобождающийся бит заполняется значением знакового бита.
Команда SHR - логический сдвиг вправо:
0®
¾¾®
¾¾®
CF
Левый освобождающийся бит заполняется нулем.
Команды арифметических сдвигов удобно применять для умножения (сдвига влево) и деления (сдвига вправо) на степень двух.