<<<    Index    >>>
3-681
INSTRUCTION SET REFERENCE
SYSENTER—Fast Transition to System Call Entry Point
Description
The SYSENTER instruction is part of the "Fast System Call" facility introduced on the
Pentium
®
 II processor. The SYSENTER instruction is optimized to provide the maximum
performance for transitions to protection ring 0 (CPL = 0).
The SYSENTER instruction sets the following registers according to values specified by the
operating system in certain model-specific registers.
CS registerset to the value of (SYSENTER_CS_MSR)
EIP registerset to the value of (SYSENTER_EIP_MSR)
SS registerset to the sum of (8 plus the value in SYSENTER_CS_MSR)
ESP registerset to the value of (SYSENTER_ESP_MSR)
The processor does not save user stack or return address information, and does not save any
registers.
The SYSENTER and SYSEXIT instructions do not constitute a call/return pair; therefore, the
system call "stub" routines executed by user code (typically in shared libraries or DLLs) must
perform the required register state save to create a system call/return pair.
The SYSENTER instruction always transfers to a flat protected mode kernel at CPL = 0.
SYSENTER can be invoked from all modes except real mode. The instruction requires that the
following conditions are met by the operating system:
•
The CS selector for the target ring 0 code segment is 32 bits, mapped as a flat 0-4 GB
address space with execute and read permissions
•
The SS selector for the target ring 0 stack segment is 32 bits, mapped as a flat 0-4 GB
address space with read, write, and accessed permissions. This selector (Target Ring 0 SS
Selector) is assigned the value of the new (CS selector + 8).
An operating system provides values for CS, EIP, SS, and ESP for the ring 0 entry point through
use of model-specific registers within the processor. These registers can be read from and
written to by using the RDMSR and WRMSR instructions. The register addresses are defined
to remain fixed at the following addresses on future processors that provide support for this
feature. 
Opcode
Instruction
Description
0F, 34
SYSENTER
Transition to System Call Entry Point
Name
Description
Address
SYSENTER_CS_MSRTarget Ring 0 CS Selector174h
SYSENTER_ESP_MSRTarget Ring 0 ESP
175h
SYSENTER_EIP_MSRTarget Ring 0 Entry Point EIP176h
<<<    Index    >>>