Opcode | Encoding | 16-bit | 32-bit | 64-bit | CPUID Feature Flag(s) | Description |
---|---|---|---|---|---|---|
F3 0F 1B mem/r BNDMK bnd, m32 | rm | Valid | Valid | N/E | mpx | Make lower and upper bounds from m32 and store them into bnd. |
F3 0F 1B mem/r BNDMK bnd, m64 | rm | N/E | N/E | Valid | mpx | Make lower and upper bounds from m64 and store them into bnd. |
Encoding
Encoding | Operand 1 | Operand 2 |
---|---|---|
rm | ModRM.reg[w] | ModRM.r/m |
Description
The BNDMK
instruction makes lower and upper bounds from the source operand's effective address. The result is stored in the destination register. At no time is memory accessed.
Which instruction form is used depends on the operating mode of the processor. In 16-bit and 32-bit modes, the 32-bit form is used. In 64-bit mode, the 64-bit form is used.
Operation
public void BNDMK_Sib(Bound dest, Sib addr)
{
dest.Lower = addr.Base;
dest.Upper = ~lea(addr);
}
Flags Affected
None.Intrinsics
void *_bnd_set_ptr_bounds(const void *address, size_t size)
Exceptions
Real-Address Mode
#UD
- If the
LOCK
prefix is used. - If 16 bit addressing is used, or 32 or 64 bit addressing is used, but without an SIB byte (
rm
is not100b
). - If a register operand encodes
BND4
throughBND7
.
Virtual-8086 Mode
#UD
- If the
LOCK
prefix is used. - If 16 bit addressing is used, or 32 or 64 bit addressing is used, but without an SIB byte (
rm
is not100b
). - If a register operand encodes
BND4
throughBND7
.
Protected Mode
#UD
- If the
LOCK
prefix is used. - If 16 bit addressing is used, or 32 or 64 bit addressing is used, but without an SIB byte (
rm
is not100b
). - If a register operand encodes
BND4
throughBND7
.
Compatibility Mode
#UD
- If the
LOCK
prefix is used. - If 16 bit addressing is used, or 32 or 64 bit addressing is used, but without an SIB byte (
rm
is not100b
). - If a register operand encodes
BND4
throughBND7
.
Long Mode
#UD
- If the
LOCK
prefix is used. - If 16 bit addressing is used, or 32 or 64 bit addressing is used, but without an SIB byte (
rm
is not100b
). - If a register operand encodes
BND4
throughBND7
.