Команды циклических сдвигов позволяют переставить биты в числе. ROL - циклический сдвиг влево и ROR - циклический сдвиг вправо, обеспечивают циклический сдвиг. При этом выдвигающийся бит подаётся в освобождающийся бит. В командах RCL и RCR в кольцо сдвига включается флаг CF: выдвигающийся бит подаётся во флаг CF, а состояние флага CF передаётся в освобождающийся бит. Операнд команд сдвигов и циклических переносов может находиться в памяти или в регистре, длина операнда равна 8 или 16 бит. Сдвиг осуществляется на предопределённое число бит (фиксированный сдвиг). В первом случае число сдвигов определяется в команде, а во втором - содержимым регистра CL (счётчика). В микропроцессоре 8086 фиксированный сдвиг осуществляется только на 1 бит.
Примеры команд приведены в таблице 2.11.
Таблица 2.11. Примеры команд циклических сдвигов.
Операнд
Слово
Байт
Фиксированный сдвиг
Регистр
КОП BX, 13
КОП DL, 1
Память
КОП MEMW, 15
КОП MEMB, 7
Переменный сдвиг
Регистр
КОП AX, CL
КОП BL, CL
Память
КОП MEMW, CL
КОП MEMB, CL
КОП: SHR, SHL, SAL, SAR, ROR, ROL, RCR, RCL.
Графическое представление работы команд циклических сдвигов приведено на рисунке 2.4.
Рисунок 2.4. Графическое представление работы команд циклических сдвигов