Команды арифметического и логического сдвига, их особенности и выполнение
В командах сдвига источник должен содержать значение счетчика сдвигов. Естественно, это значение должно быть целым числом без знака, да к тому же и лежать в разумных пределах. Сдвиг влево логический SHL приемник, источник – каждый бит приемника сдвигается влево на указанное число двоичных разрядов. Освобождаемые позиции в младших разрядах заполняются нулями. Если представить эту операцию как серию сдвигов на 1 позицию, то старший разряд перед последним сдвигом попадает во флаг CF. Сдвиг вправо логический SHR приемник, источник – каждый бит приемника сдвигается вправо на указанное число двоичных разрядов. Освобождаемые позиции в старших разрядах заполняются нулями. Если представить эту операцию как серию сдвигов на 1 позицию, то младший разряд перед последним сдвигом попадает во флаг CF. Сдвиг влево арифметический SAL приемник, источник – каждый бит приемника сдвигается влево на указанное число двоичных разрядов. Освобождаемые позиции в младших разрядах заполняются нулями. Знак операция не сохраняет, но устанавливает в 1 флаг CF, если изменяется знаковый разряд очередным сдвигаемым битом. Сдвиг вправо арифметический SAR приемник, источник – каждый бит приемника сдвигается влево на указанное число двоичных разрядов. Команда сохраняет знак операнда-приемника, восстанавливая его после сдвига каждого очередного бита.
56. Условные переходы при использовании операндов со знаком. Какие флаги используются, и при каких значениях флагов происходит переход? В этой таблице отражается действие команд условного перехода при использовании операндов со знаком по значениям анализируемых этими командами флагов:
|