xbts

386 and later

Extract Bit String

xbts r/m16, reg16 | xbts r/m32, reg32

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 IBTS).

No example here: this instruction either stops the program, or belongs to a mode this emulator does not run.

Forms

Every form of xbts the assembler accepts, from NASM's own instruction table. The second column is the processor that introduced the form; a badge marks a form that needs an extension, that is lockable, or that long mode dropped.

FormSinceNotes
xbts r/m16, reg16386nolongundocobsolete
xbts r/m32, reg32386nolongundocobsolete