ARPL            Adjust RPL Field                     Flags: O D I T S Z A P C
- - - - - * - - -
ARPL destination,source CPU: 286+ p

Logic if destination Privilege Level < source Privilege Level
destination Privilege Level ← source Privilege Level
ZF ← 1
else
ZF ← 0
endif

The destination operand contains the value of a selector. The
source operand is a word register (usually contains the CS
selector value of the caller). If the RPL field ("requested
privilege level" -- bottom two bits) of the destination operand is
less than the RPL field of the source operand, the zero flag is
set to 1 and the RPL field of the destination operand is increased
to match the second operand. Otherwise, the zero flag is set to 0
and no change is made to the first operand.

ARPL is used guarantee that a selector parameter to a subroutine
does not request more privilege than the caller is allowed. Both
destination and source must be valid selectors.

ARPL appears in operating system software; it is not used in
application programs.


Opcode Format
63 /r ARPL r/m16,r16


Length and timing
Operands Bytes 8088 186 286 386 486 Pentium
reg, reg 2 - - 10 20 9 7 NP
mem, reg 2+d(0-2) - - 11 21 9 7 NP