Иллюстрированный самоучитель по Assembler

R

RCL Циклический сдвиг влево через бит переноса

Команда гсl осуществляет сдвиг влево всех битов операнда. Если команда записана в формате:

rcl операнд,1

Сдвиг осуществляется на 1 бит. В младший бит операнда заносится значение флага CF; старший бит операнда загружается в CF. Если команда записана в формате:

rcl операнд,CL

Сдвиг осуществляется на число бит, указанное в регистре-счетчике CL, при этом в процессе последовательных сдвигов старшие биты операнда поступают сначала в CF, а оттуда – в младшие биты операнда (рис. П4).

Иллюстрированный самоучитель по Assembler › Приложение. Система команд процессоров Intel. › R
Рис. П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

Иллюстрированный самоучитель по Assembler › Приложение. Система команд процессоров Intel. › R Допустим сдвиг 32-битовых операндов. Допустимо указание числа битов сдвига как с помощью регистра CL, так и непосредственным значением. Максимальная величина сдвига составляет 31 бит.

Пример:

mov EAX,0С0000003h
clc; Сбросим CF
rcl EAX,2; EAX=0000000Dh, CF=1
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.