SHR Логический сдвиг вправо

Флаги

O D I T S Z A P C
*       * * ? * * 

Команда:

SHR destination,count

Команда SHR сдвигает слово или байт, находящийся по адресу destination, вправо на число битовых позиций, определяемое вторым операндом, COUNT, или содержимым CL, если второй операнд опущен. По мере вытеснения битов за правый край операнда destination, слева в освободившиеся биты заносятся нули. Если бит знака сохраняет свое значение, то флаг переполнения OF равен 0, иначе он равен 1. Значение CF совпадает со значением бита, который последним был вытеснен за правый край операнда.

Если COUNT не равен 1, то флаг переполнения OF не определен. Если же COUNT равен 1, то OF равен значению старшего бита исходного операнда.

Операнды Такт байты (слова)ОбращенияБайтыПример
регистр, 12-2SHR SI,1
регистр, CL8 + 4/бит- 2SHR SI,CL
память, 115 + EA22-4SHR ID_BYTE[SI][BX],1
память, CL20 + EA + 4/бит22-4SHR INPUT_WORD,CL

Примечания:
В качестве операнда COUNT берется обычно значение в регистре CL. Если, однако, Вы хотите осуществить сдвиг лишь на одну позицию, то замените второй операнд (CL) на число 1, как показано выше в первом примере.
Микропроцессоры 80286 и 80386 ограничивают значение COUNT числом 31. Если COUNT больше, чем 31, то эти микропроцессоры используют COUNT MOD 32, чтобы получить новый COUNT в пределах 0-31. Эта верхняя граница имеет своей целью сократить тот период времени, на который будет задерживаться ответ на прерывание из-за ожидания конца выполнения команды.
Несколько команд SHR, использующих 1 в качестве второго операнда, выполняются быстрее и требуют меньшего объема памяти, чем одна команда SHR, использующая CL в качестве операнда COUNT.
Флаг переполнения не определен, если операнд COUNT больше 1.

Hosted by uCoz