Справочник по языку Ассемблера IBM PC

SAR


(Shift Arithmetic operand Right)

Сдвиг арифметический операнда вправо

Схема команды:  sar операнд,количество_сдвигов 

Назначение: арифметический сдвиг операнда вправо.


Алгоритм работы:

сдвиг всех битов операнда вправо на один разряд, при этом выдвигаемый справа бит становится значением флага переноса cf;

обратите внимание: одновременно слева в операнд вдвигается не нулевой бит, а значение старшего бита операнда, то есть по мере сдвига вправо освобождающиеся места заполняются значением знакового разряда. По этой причине этот тип сдвига и называется арифметическим;

указанные выше два действия повторяются количество раз, равное значению второго операнда.



Состояние флагов после выполнения команды:

11 00
OF CF
?r

Применение:


Команда sar используется для арифметического сдвига разрядов операнда вправо. Так же, как и для других сдвигов, значение второго операнда (счетчика сдвига) ограничено диапазоном 0...31. Это объясняется тем, что микропроцессор использует только пять младших разрядов операнда количество_разрядов. В отличие от других команд сдвига флаг of всегда сбрасывается в ноль в операциях сдвига на один разряд.
Команду sar можно использовать для деления целочисленных операндов со знаком на степени 2.

        mov     ax,88 ;(ax) разделить на 2 во второй степени, то есть на 4         sar     ax,2         

См. также: урок 8, 9 и команды , , , , , ,



Содержание раздела