B.4.291. `SHLD', `SHRD': Bitwise Double-Precision Shifts
--------------------------------------------------------
SHLD r/m16,reg16,imm8 ; o16 0F A4 /r ib [386]
SHLD r/m16,reg32,imm8 ; o32 0F A4 /r ib [386]
SHLD r/m16,reg16,CL ; o16 0F A5 /r [386]
SHLD r/m16,reg32,CL ; o32 0F A5 /r [386]
SHRD r/m16,reg16,imm8 ; o16 0F AC /r ib [386]
SHRD r/m32,reg32,imm8 ; o32 0F AC /r ib [386]
SHRD r/m16,reg16,CL ; o16 0F AD /r [386]
SHRD r/m32,reg32,CL ; o32 0F AD /r [386]
* `SHLD' performs a double-precision left shift. It notionally places
its second operand to the right of its first, then shifts the
entire bit string thus generated to the left by a number of bits
specified in the third operand. It then updates only the _first_
operand according to the result of this. The second operand is not
modified.
* `SHRD' performs the corresponding right shift: it notionally places
the second operand to the _left_ of the first, shifts the whole bit
string right, and updates only the first operand.
For example, if `EAX' holds `0x01234567' and `EBX' holds
`0x89ABCDEF', then the instruction `SHLD EAX,EBX,4' would update `EAX'
to hold `0x12345678'. Under the same conditions, `SHRD EAX,EBX,4' would
update `EAX' to hold `0xF0123456'.
The number of bits to shift by is given by the third operand. Only
the bottom five bits of the shift count are considered.
automatically generated byinfo2wwwversion 1.2.2.9