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



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


      і CY Г<ДДДґ ДАННЫЕ  Г<ДДД 0     АДД>ґ  ДАННЫЕ  ГДДД>ґ CY і
      АДДДДЩ      АДДДДДДДДДЩ         АДДДДДДДДДДЩ      АДДДДЩ
             SAL                      SAR
 
            Фиг. 4.20 Операции сдвига.
 
      Во всех командах сдвига определяется счетчик сдвигов, т.е.
    программа указывает число битов, на которое надо сделать сдвиг; это
    число и есть счетчик сдвигов. Его наиболее распространенное
    значение - единица. Такой счетчик сдвигает биты операнда на одну
    позицию. Однако команда может задать произвольный счетчик сдвигов,
    занося его значение в регистр CL пред сдвигом. Если в команде
    указано, что счетчик сдвигов надо взять из регистра CL, значение
    этого регистра определяет число сдвигов битов. Число в регистре CL
    может быть любым от 0 до 255, но его практически имеющие смысл
    значения лежат в пределах 0 - 16. Значение 0 не вызывает сдвига, а
    любое значение больше 16 сдвигает битов больше, чем содержит
    операнд.
 
      Другая общая черта команд сдвига - это установка флага
    переноса. Бит, попадающий за пределы операнда, имеет специальное
    место. Команды сдвига помещают последний выдвинутый из операнда бит
    в флаг переноса. Если сдвиг был на один бит, то бит из дальнего
    конца операнда становится новым значением флага переноса. В случае
    многобитового сдвига, вдвигаемый в перенос бит появляется изнутри
    операнда. Флаг переноса имеет значение для операций повышенной
    точности. Поскольку операнд операции сдвига может иметь максимум 16
    бит, программа может организовать работу с данными большего размера
    с помощью нескольких сдвигов и флага переноса. Программа
    "разрезает" операнд на 16=битовые куски, а затем сдвигает каждую
    часть на один бит каждый раз. Флаг переноса используется программой
    для передачи выдвинутой информации в следующую часть сдвигаемого
    операнда.
 
      Верхние четыре команды на Фиг.4.20 - команды циклического
    сдвига. На рисунке схематически представлена работа каждой команды.



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