RCR Циклический сдвиг вправо через CF

Флаги

O D I T S Z A P C
*               *

Команда:

RCR destination,count 

Команда RCR сдвигает слово или байт, находящийся по адресу destination, вправо на число битовых позиций, определяемое вторым операндом, COUNT. Бит, который выскакивает за правый предел операнда destination, заносится в признак переноса CF, а старое значение CF осуществляет ротацию, в том смысле, что оно заносится в освободившийся крайний левый бит операнда destination. Число таких "битовых ротаций" определяется операндом COUNT.

Если COUNT не равен 1, то флаг переполнения OF не определен. Если же COUNT равен 1, тогда в OF заносится результат выполнения операции исключающего или, примененной к 2 старшим битам результата.

Операнды Такт байты (слова)ОбращенияБайтыПример
регистр, 12- 2RCR CX,1
регистр, CL8 + 4/бит - 2RCR DL,CL
память, 115(23) + EA22-4RCR DIVIDE,1
память, CL20(28)+EA+4/бит22-4RCR MOVE_AR,CL

Примечания:
В качестве операнда COUNT берется обычно значение в регистре CL. Если, однако, Вы хотите осуществить сдвиг лишь на одну позицию, то замените второй операнд (CL) на число 1, как показано выше в первом примере.
Микропроцессоры 80286 и 80386 ограничивают значение COUNT числом 31. Если COUNT больше, чем 31, то эти микропроцессоры используют COUNT MOD 32, чтобы получить новый COUNT в пределах 0-31. Эта верхняя граница имеет своей целью сократить тот период времени, на который будет задерживаться ответ на прерывание из-за ожидания конца выполнения команды.
Несколько команд RCR, использующих 1 в качестве второго операнда, выполняются быстрее и требуют меньшего объема памяти, чем одна команда RCR, использующая CL в качестве операнда COUNT.
Флаг переполнения не определен, если операнд COUNT больше 1.

Hosted by uCoz