Справочник по языку Ассемблера IBM PC

ROR


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

ASCII-коррекция после сложения

 

Схема команды:  ror операнд,количество_сдвигов 

Назначение: операция циклического сдвига операнда вправо.


Алгоритм работы:

сдвиг всех битов операнда вправо на один разряд, при этом младший бит операнда вдвигается в операнд слева и становится значением старшего бита операнда;

одновременно этот младший бит операнда становится значением флага переноса cf;

старое значение флага переноса cf вдвигается в операнд слева и становится значением старшего бита операнда;



указанные выше два действия повторяются количество раз, равное значению второго операнда.

Состояние флагов после выполнения команды:

11 00
OF CF
?r

Применение:


Команда ror используется для циклического сдвига разрядов операнда вправо. Отличие этого сдвига от rcr в том, что очередной сдвигаемый бит одновременно вдвигается в операнд слева и становится значением флага cf. Так же, как и для других сдвигов, значение второго операнда (счетчика сдвига) ограничено диапазоном 0...31. Это объясняется тем, что микропроцессор использует только пять младших разрядов операнда количество_разрядов. Аналогично другим командам сдвига сохраняется эффект, связанный с поведением флага of, значение которого имеет смысл только в операциях сдвига на один разряд:

    если of=1, то текущее значение флага cf и вдвигаемого слева бита операнда различны;

    если of=0, то текущее значение флага cf и вдвигаемого слева бита операнда совпадают;

    Этот эффект, как вы помните, обусловлен тем, что флаг of устанавливается в единицу всякий раз при изменении знакового разряда операнда.

    ;поместить четыре младших бита ax на место старших битов:         ror     ax,4         

    См. также: уроки 9 и команды , , , , , ,



    Содержание раздела