Циклический сдвиг.

Циклический сдвиг отличается от линейного тем, что выдвигаемые с одного конца биты вдвигаются с другой стороны, то есть движутся по кольцу. В процессора x86 существует 2 вида циклического сдвига: простой и через флаг переноса (CF).

Простой циклический сдвиг

Циклический сдвиг вправо выполняется командой ROR, а влево — командой ROL. При этом старший (для ROL) или младший (для ROR) бит операнда вдвигается в операнд справа (для ROL) или слева (для ROR) и становится значением младшего (для ROL) или старшего (для ROR) бита операнда; одновременно выдвигаемый бит становится значением флага переноса CF. Указанные действия повторяются количество раз, равное значению второго операнда. Примеры использования команд:

rol bl,1        ;Циклический сдвиг BL на 1 бит влево
ror word[si],5  ;Циклический сдвиг слова по адресу в SI на 5 бит вправо
rol ax,cl       ;Циклический свдиг AX на CL бит влево

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

Циклический сдвиг через флаг переноса отличается от простого циклического сдвига в том, что флаг CF участвует в сдвиге наравне с битами операнда. При сдвиге на 1 бит выдвигаемый бит помещается в CF, а значение CF вдвигается в операнд с другой стороны. При сдвиге на несколько бит эта операция повторяется многократно. Циклический сдвиг через флаг переноса выполняется командами RCR (вправо) и RCL (влево). Примеры использования команд:

rcr dh,3        ;Цикл. сдвиг DH на 3 бита вправо через флаг CF
rcl byte[bx],cl ;Цикл. сдвиг байта по адресу в BX на CL бит влево через флаг CF
rcl dx,1        ;Цикл. сдвиг DX на 1 бит влево через флаг CF

 
Поделиться в facebook
Facebook
Поделиться в twitter
Twitter
Поделиться в vk
VK
Поделиться в google
Google+
Поделиться в email
Email

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Группа в VK

Помощь проекту

Обнаружили опечатку?

Сообщите нам об этом, выделите текст с ошибкой и нажмите Ctrl+Enter, будем очень признательны!

Свежие статьи

Похожие статьи

Команды работы с битами.

Команды работы с битами.

Работать с отдельными битами операндов можно, используя логические операции и сдвиги. Также в системе команд x86 существуют специальные команды для работы с битами: это команды

 
Основы создания макросов в Assembler.

Основы создания макросов в Assembler.

Макросы — это шаблоны для генерации кода. Один раз создав макрос, можно использовать его во многих местах в коде программы. Макросы делают процесс программирования на

 
Синтаксис объявления меток.

Синтаксис объявления меток.

Метка в ассемблере – это символьное имя, обозначающее ячейку памяти, которая содержит некоторую команду. Метка может содержать следующие символы: Буквы (от A до Z и

 
Локальные переменные.

Локальные переменные.

Локальные переменные в Assembler используются для хранения промежуточных результатов во время выполнения процедуры. В отличие от глобальных, эти переменные являются временными и создаются при запуске

 

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: