Реферат: Программная модель процессоров семейства X86
Все команды сдвига устанавливают флаг переноса cf.
shl операнд,счетчик_сдвигов (ShiftLogicalLeft) - логический сдвиг влево. Содержимое операнда сдвигается влево на количество битов, определяемое значением счетчик_сдвигов. Справа (в позицию младшего бита) вписываются нули;
shr операнд,счетчик_сдвигов — логический сдвиг вправо.
|
Алгоритм работы команд:
· очередной “выдвигаемый” бит устанавливает флаг cf;
· бит, вводимый в операнд с другого конца, имеет значение 0;
· при сдвиге очередного бита он переходит во флаг cf, при этом значение предыдущего сдвинутого бита теряется!
sal операнд,счетчик_сдвигов (ShiftArithmeticLeft)
sar операнд,счетчик_сдвигов
арифметический сдвиг влево/вправо. Содержимое операнда сдвигается влево/ вправо на количество битов, определяемое значением счетчик_сдвигов . Справа/ Слева в операнд вписываются нули.
Команда sal не сохраняет знака , но устанавливает флаг cf в случае смены знака очередным выдвигаемым битом. В остальном команда sal полностью аналогична команде shl;
Команда sar сохраняет знак , восстанавливая его после сдвига каждого очередного бита.
Команды циклического сдвига
rol операнд , счетчик _ сдвигов (Rotate Left) — циклическийсдвигвлево.
Содержимое операнда сдвигается влево на количество бит, определяемое операндом счетчик_сдвигов . Сдвигаемые влево биты записываются в тот же операнд справа.
ror операнд,счетчик_сдвигов (Rotate Right) — циклический сдвиг вправо.
|