Opcode SYSENTER


CPU: Intel Pentium II
Type of Instruction: System

Instruction: SYSENTER

Description:

if CR.0.PE == 0 then #GP(0);
if SYSENTER_CS_MSR == 0 then #GP(0);

EFLAGS.VM <- 0;
EFLAGS.IF <- 0;

CS.SEL <- SYSENTER_CS_MSR;
CPL <- 0;
CS.BASE <- 0;
CS.LIMIT <- 0xffff;
CS.ATTR.G <- 1;
CS.ATTR.S <- 1;
CS.ATTR.TYPE <- 1011b;
CS.ATTR.D <- 1;
CS.ATTR.DPL <- 0;
CS.RPL <- 0;
CS.ATTR.P <- 1;

SS.SEL <- CS.SEL+8;
SS.BASE <- 0;
SS.LIMIT <- 0xffff;
SS.ATTR.G <- 1;
SS.ATTR.S <- 1;
SS.ATTR.TYPE <- 0011b;
SS.ATTR.D <- 1;
SS.ATTR.DPL <- 0;
SS.RPL <- 0;
SS.ATTR.P <- 1;

ESP <- SYSENTER_ESP_MSR;
EIP <- SYSENTER_EIP_MSR;

Note: How to check if this instruction present:
CPUID.SEP bit must be set.
AND
CPUID.FAMILY == 6 AND (CPUID.MODEL >=3) AND (CPUID.STEP >= 3)

Note: See MSR List for more Info. (MSRs 174h,175h,176h)

Note: Passing control to fixed entry point for faster OS calls.

++++++++++++++++++++++++++++++++++++++
COP & Times:

SYSENTER 0FH 34H
P6: n/a


Copyright by InternetNightmare 2005-2006