(SHift Right Double word)
Сдвиг двойного слова вправо
Схема команды:
| shrd приемник,источник,количество_сдвигов
|
Назначение: логический сдвиг двойного слова вправо.
Синтаксис
Алгоритм работы:
- сдвинуть операнд приемник вправо на количество битов, определяемое операндом количество_сдвигов;
- одновременно сдвинуть операнд источник вправо на количество битов, определяемое операндом количество_сдвигов. Важно заметить, что операнд источник только обеспечивает вдвигаемые в операнд приемник биты, сам он при этом не изменяется;
- выдвигаемые вправо во время сдвига из операнда источник биты вдвигаются в операнд приемник с его левого конца.
Состояние флагов после выполнения команды:
|
|
|
|
|
|
OF
| SF
| ZF
| AF
| PF
| CF
|
?
| r
| r
| ?
| r
| r
|
Применение:
Команда shrd используется для манипуляции битными строками длиной до 64 бит. Эту команду удобно использовать для быстрой вставки (или извлечения) битной строки в большую битную строку, при этом, что очень важно, не разрушается контекст (битное окружение) этих подстрок.
.386;разделить операнд размером 64 бит на степень 2op_l dd ... ;младшая часть операндаop_h dd ... ;старшая часть операнда... mov eax,op_h shrd op_l,eax,4 ;разделить операнд на 4;так как старшая часть операнда реально еще не сдвинулась,;то нужно привести ее в соответствие с результатом shr op_h,4 |
См. также: урок 9 и команды rcr, rcl, ror, rol, sar, sal, shr, shld