![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
К командам линейного сдвига относятся команды, осуществляющие сдвиг по следующему алгоритму:
1. Очередной выдвигаемый бит устанавливает флаг CF.
2. Бит, появляющийся с другого конца операнда, имеет значение 0.
3. При сдвиге очередного бита он переходит во флаг CF, при этом значение предыдущего сдвинутого бита теряется.
Команды линейного сдвига делятся на два подтипа:
• команды логического линейного сдвига;
• команды арифметического линейного сдвига.
Далее перечислены команды логического линейного сдвига:
• SHL операнд,счетчик_сдвигов — логический сдвиг влево (Shift Logical Left). Содержимое операнда сдвигается влево на количество битов, определяемое значением счетчик_сдвигов. Справа в позицию младшего бита вписываются нули.
• SHR операнд,счетчик_сдвигов — логический сдвиг вправо (Shift Logical Right). Содержимое операнда сдвигается вправо на количество битов, определяемое значением счетчик_сдвигов. Слева в позицию старшего (знакового) бита вписываются нули.
Команды арифметического линейного сдвига отличаются от команд логического сдвига тем, что они особым образом работают со знаковым разрядом операнда:
• SAL операнд,счетчик_сдвигов — арифметический сдвиг влево (Shift Arithmetic Left). Содержимое операнда сдвигается влево на количество битов, определяемое значением счетчик_сдвигов. Справа (в позицию младшего бита) вписываются нули. Команда SAL не сохраняет знака, но устанавливает флаг OF в случае смены знака очередным выдвигаемым битом. В остальном команда SAL полностью аналогична команде SHL;
• SAR операнд,счетчик_сдвигов — арифметический сдвиг вправо (Shift Arithmetic Right). Содержимое операнда сдвигается вправо на количество битов, определяемое значением счетчик_сдвигов. Слева в операнд вписываются нули. Команда SAR сохраняет знак, восстанавливая его после сдвига каждого очередного бита.
Дата публикования: 2014-12-08; Прочитано: 1009 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!