R
RCR Циклический сдвиг вправо через бит переноса
Команда rсl осуществляет сдвиг вправо всех битов операнда. Если команда записана в формате:
rcl операнд,1
Сдвиг осуществляется на 1 бит. В старший бит операнда заносится значение флага CF; младший бит операнда загружается в CF. Если команда записана в формате:
rcl операнд,CL
Сдвиг осуществляется на число бит, указанное в регистре-счетчике CL, при этом в процессе последовательных сдвигов младшие биты операнда поступают сначала в CF, а оттуда – в старшие биты операнда (Рис. П5).
Рис. П.5. Действие команды rcl.
В качестве операнда можно указывать любой регистр (кроме сегментного) или ячейку памяти размером как в байт, так и в слово. Не допускается использовать в качестве операнда непосредственное значение. Команда воздействует на флаги OF и CF.
Пример 1:
clc; Сбросим флаг CF mov AX, 2 rcr АХ,1; АХ=1, CF=0
Пример 2:
stc; Установим флаг CF mov DL,8 rcr DL,1; DL=84h, CF=0
Пример 3:
clc; Сбросим флаг CF mov BX,OFh rcr BX,1; BX=7, CF=1
Пример 4:
clc; Сбросим флаг CF mov DH,80h mov CL,5; Счетчик сдвигов rcr DH,CL; DH=4, CF=0
Допустим сдвиг 32-битовых операндов. Допустимо указание числа бит сдвига как с помощью регистра CL, так и непосредственным значением. Максимальная величина сдвига составляет 31 бит.
Пример:
mov ESI,0FFFF000lh clc; Сбросим флаг CF rcr ESI,8; ESI=02FFFF00h, CF=0
Pentium+P RDMSR Чтение особого регистра модели
Команда читает содержимое внутреннего регистра, специфического для конкретной модели процессора.