Intel 253666-024US Computer Hardware User Manual


 
3-64 Vol. 2A ARPL—Adjust RPL Field of Segment Selector
INSTRUCTION SET REFERENCE, A-M
ARPL—Adjust RPL Field of Segment Selector
Description
Compares the RPL fields of two segment selectors. The first operand (the destination
operand) contains one segment selector and the second operand (source operand)
contains the other. (The RPL field is located in bits 0 and 1 of each operand.) If the
RPL field of the destination operand is less than the RPL field of the source operand,
the ZF flag is set and the RPL field of the destination operand is increased to match
that of the source operand. Otherwise, the ZF flag is cleared and no change is made
to the destination operand. (The destination operand can be a word register or a
memory location; the source operand must be a word register.)
The ARPL instruction is provided for use by operating-system procedures (however, it
can also be used by applications). It is generally used to adjust the RPL of a segment
selector that has been passed to the operating system by an application program to
match the privilege level of the application program. Here the segment selector
passed to the operating system is placed in the destination operand and segment
selector for the application program’s code segment is placed in the source operand.
(The RPL field in the source operand represents the privilege level of the application
program.) Execution of the ARPL instruction then insures that the RPL of the segment
selector received by the operating system is no lower (does not have a higher privi-
lege) than the privilege level of the application program (the segment selector for the
application program’s code segment can be read from the stack following a proce-
dure call).
This instruction executes as described in compatibility mode and legacy mode. It is
not encodable in 64-bit mode.
See “Checking Caller Access Privileges” in Chapter 3, “Protected-Mode Memory
Management,” of the Intel® 64 and IA-32 Architectures Software Developer’s
Manual, Volume 3A, for more information about the use of this instruction.
Operation
IF 64-BIT MODE
THEN
See MOVSXD;
ELSE
IF DEST[RPL) < SRC[RPL)
THEN
ZF 1;
DEST[RPL) SRC[RPL);
Opcode Instruction 64-Bit
Mode
Compat/
Leg Mode
Description
63 /r ARPL r/m16, r16 N. E. Valid Adjust RPL of r/m16 to not less
than RPL of r16.