5-34 Vol. 3
PROTECTION
general-protection exception (#GP) is generated. The following system instructions
are privileged instructions:
LGDT — Load GDT register.
LLDT — Load LDT register.
LTR — Load task register.
LIDT — Load IDT register.
MOV (control registers) — Load and store control registers.
LMSW — Load machine status word.
CLTS — Clear task-switched flag in register CR0.
MOV (debug registers) — Load and store debug registers.
INVD — Invalidate cache, without writeback.
WBINVD — Invalidate cache, with writeback.
INVLPG —Invalidate TLB entry.
HLT— Halt processor .
RDMSR — Read Model-Specific Registers.
WRMSR —Write Model-Specific Registers.
RDPMC — Read Performance-Monitoring Counter.
RDTSC — Read Time-Stamp Counter.
Some of the privileged instructions are available only in the more recent families of
Intel 64 and IA-32 processors (see Section 19.13, “New Instructions In the Pentium
and Later IA-32 Processors”).
The PCE and TSD flags in register CR4 (bits 4 and 2, respectively) enable the RDPMC
and RDTSC instructions, respectively, to be executed at any CPL.
5.10 POINTER VALIDATION
When operating in protected mode, the processor validates all pointers to enforce
protection between segments and maintain isolation between privilege levels.
Pointer validation consists of the following checks:
1. Checking access rights to determine if the segment type is compatible with its
use.
2. Checking read/write rights.
3. Checking if the pointer offset exceeds the segment limit.
4. Checking if the supplier of the pointer is allowed to access the segment.
5. Checking the offset alignment.