Команды циклических сдвигов.

Команды циклических сдвигов позволяют переставить биты в числе. 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. Графическое представление работы команд циклических сдвигов