Assembler для начинающих



Операции сдвига и поворота - часть 3


    Циклические сдвиги переносят появляющийся в конце операнда бит в
    другой конец. Циклический сдвиг влево ROL и циклический сдвиг
    вправо ROR различаются лишь направлением сдвига данных. Аналогично,
    циклический сдвиг влево с переносом RCL и циклический сдвиг вправо
    с переносом RCR являются зеркальным отражением друг друга. Команды
    ROL и RCL различаются в трактовке флага переноса. Байтовая команда
    RCL рассматривает данные как 9=битовые, причем роль девятого бита
    играет флаг переноса. Если операнд - слово, команда ROL циклически
    сдвигает 16 бит, а команда RCL циклически сдвигает 17 бит.
 
      Команды снизу Фиг.4.20 не возвращают выдвигаемые из операнда
    биты в свой операнд. Эти биты попадают в флаг переноса, а затем
    просто исчезают. Значение, вдвигаемое в операнд, определяется типом
    сдвига. В случае логического сдвига вдвигаемый бит всегда 0;
    арифметический сдвиг выбирает вдвигаемый бит таким, чтобы сохранить
    знак операнда.
 
      Почему сдвиг называется арифметическим, если он входит в группу
    логических команд? Сдвиг числа на одну позицию (бит) эквивалентен
    умножению или делению этого числа на 2. В десятичной системе
    счисления, добавление нуля в конце числа умножает его на 10. В
    двоичной арифметике добавление 0 в конце умножает число на 2. Так
    как ЭВМ не может добавить другой бит в конце операнда, операция
    сдвига действует аналогично. Команда сдвига влево перемещает все
    биты влево на одну позицию, а в младшую позицию помещает 0. Таким
    образом, сдвиг влево умножает число на 2. Если величина сдвига
    больше единицы, число умножается на 2, возведенное в степень,
    равную содержимому счетчика сдвигов. Например, сдвиг влево на 3
    бита эквивалентен умножению на 8.
 
      Сдвиг числа вправо - это то же самое деление на 2. Сдвинутый
    операнд - частное, а флаг переноса - остаток. Если счетчик сдвигов
    больше 1, операнд по=прежнему есть частное, а остаток теряется.



Содержание  Назад  Вперед