R
RCL Циклический сдвиг влево через бит переноса
Команда гсl осуществляет сдвиг влево всех битов операнда. Если команда записана в формате:
rcl операнд,1
Сдвиг осуществляется на 1 бит. В младший бит операнда заносится значение флага CF; старший бит операнда загружается в CF. Если команда записана в формате:
rcl операнд,CL
Сдвиг осуществляется на число бит, указанное в регистре-счетчике CL, при этом в процессе последовательных сдвигов старшие биты операнда поступают сначала в CF, а оттуда – в младшие биты операнда (рис. П4).
Рис. П4. Действие команды rcl.
В качестве операнда команды rcl можно указывать любой регистр (кроме сегментного) или ячейку памяти размером как в байт, так и в слово. Не допускается использовать в качестве операнда непосредственное значение. Команда воздействует на флаги OF и CF.
Пример 1:
clc; Сбросим CF mov AX, 7 rcl АХ,1 '; AX=000Eh=14, CF=0
Пример 2:
stc; Установим CF mov DL,7 rcl DL,1; DL=0Fh=15, CF=0
Пример 3:
clc; Сбросим CF mov BX,0FFFFh rcl BX,1 '; BX=FFFEh, CF=1
Пример 4:
clc; Сбросим CF mov DH,3 mov CL,4; Счетчик сдвигов rcl DH,CL; DH=30h=48, CF=0
Допустим сдвиг 32-битовых операндов. Допустимо указание числа битов сдвига как с помощью регистра CL, так и непосредственным значением. Максимальная величина сдвига составляет 31 бит.
Пример:
mov EAX,0С0000003h clc; Сбросим CF rcl EAX,2; EAX=0000000Dh, CF=1