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

SHRD


(SHift Right Double word)

Сдвиг двойного слова вправо

 

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

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


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

сдвинуть операнд приемник вправо на количество битов, определяемое операндом количество_сдвигов;

одновременно сдвинуть операнд источник вправо на количество битов, определяемое операндом количество_сдвигов. Важно заметить, что операнд источник только обеспечивает вдвигаемые в операнд приемник биты, сам он при этом не изменяется;

выдвигаемые вправо во время сдвига из операнда источник биты вдвигаются в операнд приемник с его левого конца.



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

11 07 06 04 02 00
OF SF ZF AF PF CF
? r r ? r

Применение:


Команда shrd используется для манипуляции битными строками длиной до 64 бит. Эту команду удобно использовать для быстрой вставки (или извлечения) битной строки в большую битную строку, при этом, что очень важно, не разрушается контекст (битное окружение) этих подстрок.

.386 ;разделить операнд размером 64 бит на степень 2 op_l    dd      ...     ;младшая часть операнда op_h    dd      ...     ;старшая часть операнда ...         mov     eax,op_h         shrd    op_l,eax,4      ;разделить операнд на 4 ;так как старшая часть операнда реально еще не сдвинулась, ;то нужно привести ее в соответствие с результатом         shr     op_h,4         

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



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