Сдвиг логический операнда вправо
ASCII-коррекция после сложения
Схема команды:
| shr операнд,кол-во_сдвигов
|
Назначение: логический сдвиг операнда вправо.
Синтаксис
Алгоритм работы:
- сдвиг всех битов операнда вправо на один разряд; при этом выдвигаемый справа бит становится значением флага переноса cf;
- одновременно слева в операнд вдвигается нулевой бит;
- указанные выше два действия повторяются количество раз, равное значению второго операнда.
Состояние флагов после выполнения команды:
|
|
|
|
|
|
OF
| SF
| ZF
| AF
| PF
| CF
|
?r
| r
| r
| ?
| r
| r
|
Применение:
Команда shr используется для логического сдвига разрядов операнда вправо. Так же, как и для других сдвигов, значение второго операнда (счетчика сдвига) ограничено диапазоном 0...31. Это объясняется тем, что микропроцессор использует только пять младших разрядов операнда количество_разрядов. В отличие от других команд сдвига, флаг of всегда сбрасывается в ноль в операциях сдвига на один разряд.
Команду shr можно использовать для деления целочисленных операндов без знака на степени 2.
mov cl,4 shr eax,cl ;(eax) разделить на 2 в степени 4 |
См. также: урок 9 и команды rcr, rcl, ror, rol, sal, shl, sar