B.4.332. `XBTS': Extract Bit String
-----------------------------------
XBTS reg16,r/m16 ; o16 0F A6 /r [386,UNDOC]
XBTS reg32,r/m32 ; o32 0F A6 /r [386,UNDOC]
The implied operation of this instruction is:
XBTS r/m16,reg16,AX,CL
XBTS r/m32,reg32,EAX,CL
Writes a bit string from the source operand to the destination. `CL'
indicates the number of bits to be copied, and `(E)AX' indicates the
low order bit offset in the source. The bits are written to the low
order bits of the destination register. For example, if `CL' is set to
4 and `AX' (for 16-bit code) is set to 5, bits 5-8 of `src' will be
copied to bits 0-3 of `dst'. This instruction is very poorly
documented, and I have been unable to find any official source of
documentation on it.
`XBTS' is supported only on the early Intel 386s, and conflicts with
the opcodes for `CMPXCHG486' (on early Intel 486s). NASM supports it
only for completeness. Its counterpart is `IBTS' (see *Note Section
B.4.116::).