SHRD concatenates the two 16- or 32-bit operands into a 32-bit or 64-bit value (operand2 is the high-order), shifts the value right by count bit positions, and returns the low-order of the result to operand1. Operand2 is not changed by SHRD.
The count operand is provided by either an immediate 8-bit value or the contents of the CL register; only the lower 5 bits are used, limiting the count value to 31.
The carry flag (CF) is set to the value of the last bit shifted out. The overflow flag (OF) is undefined.