ВУЗ:
Составители:
Рубрика:
22
Линейный сдвиг
Осуществляется сдвиг по следующей схеме:
• Очередной «выдвигаемы й» бит устанавливается флаг cf
• бит, вводимый в операнд с другого конца, имеет значение 0
• при сдвиге очередного бита он переходит во флаг cf, при этом значение предыдущего
сдвинутого бита теряется.
Команды линейного делятся на:
команды логического сдвига
команды арифметического сдвига.
К командам логического сдвига относятся
shl операнд, счетчик_сдвигов – логический сдвиг влево. Содержимое операнда сдвигается влево
на количество битов, определяемое значением счетчика_сдвигов. Справа (в позицию младшего
бита) вписываются нули
shr операнд, счетчик_сдвигов – логический сдвиг вправо. Содержимое операнда сдвигается
вправо на количество битов, определяемое значением счетчика_сдвигов. Слева (в позицию
старшего бита) вписываются нули
shl ah,4
Команды арифметического линейного сдвига отличаются от команд логического сдвига тем, что
они особым образом работают со знаковым разрядом операнда
sal операнд, счетчик_сдвигов – арифметический сдвиг влево. Содержимое операнда сдвигается
влево на количество битов, определяемое значением счетчика_сдвигов. Справа (в позицию
младшего бита) вписываются нули. Команда sal не сохраняет знака, но устанавливает флаг cf в
случае смены знака очередным выдвигаемым битом.
Линейный сдвиг Осуществляется сдвиг по следующей схеме: • Очередной «выдвигаемы й» бит устанавливается флаг cf • бит, вводимый в операнд с другого конца, имеет значение 0 • при сдвиге очередного бита он переходит во флаг cf, при этом значение предыдущего сдвинутого бита теряется. Команды линейного делятся на: команды логического сдвига команды арифметического сдвига. К командам логического сдвига относятся shl операнд, счетчик_сдвигов – логический сдвиг влево. Содержимое операнда сдвигается влево на количество битов, определяемое значением счетчика_сдвигов. Справа (в позицию младшего бита) вписываются нули shr операнд, счетчик_сдвигов – логический сдвиг вправо. Содержимое операнда сдвигается вправо на количество битов, определяемое значением счетчика_сдвигов. Слева (в позицию старшего бита) вписываются нули shl ah,4 Команды арифметического линейного сдвига отличаются от команд логического сдвига тем, что они особым образом работают со знаковым разрядом операнда sal операнд, счетчик_сдвигов – арифметический сдвиг влево. Содержимое операнда сдвигается влево на количество битов, определяемое значением счетчика_сдвигов. Справа (в позицию младшего бита) вписываются нули. Команда sal не сохраняет знака, но устанавливает флаг cf в случае смены знака очередным выдвигаемым битом. 22