RCL Циклический сдвиг влево через CF

Флаги

O D I T S Z A P C
*               *

Команда:

RCL destination,count

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

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

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

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

Hosted by uCoz