Андрей Газибаров


без тайни

Инструкциите On-line

SYSENTER
Бързо извикване на системен код
Общи форми: SYSENTER
 
Форма КОП   I8086 I80386 I80486
SYSENTER 0F 34        
Действие: VM ← 0
IF ← 0
RF ← 0

CS ← IA32_SYSENTER_CS
CS.Base ← 00000000h
CS.Limit ← FFFFFh
IF 64-Bit Mode THEN
  CS.xAR ← 1010b (* лимит в страници, 64-битов код *)
ELSE
  CS.xAR ← 1100b (* лимит в страници, 32-битов код *)
ENDIF
CS.AR ← 10011011b (* код,четим,несъвместим,присъстващ,PL=0 *)
CS.RPL ← 0

SS ← IA32_SYSENTER_CS + 08h
SS.Base ← 00000000h
SS.Limit ← FFFFFh
SS.xAR ← 1100b (* лимит в страници, 32-битов стек *)
SS.AR ← 10010011b (* данни, записваем, присъстващ, PL=0 *)
SS.RPL ← 0

EIP ← IA32_SYSENTER_EIP
ESP ← IA32_SYSENTER_ESP
Инструкцията изпълнява преход към код на ниво на привилегированост 0. Използват се единствено данни, предварително зададени в моделно-специфични регистри без запазване на информация за адрес на връщане и без проверки за коректност на данните. Затова изпълнението на инструкцията е свръхбързо.
Флагове
PE VM NT IOPL OF DF IF TF SF ZF AF PF CF
  0         0            
CPU
8086 186 V20 286 386 486 P P-P P-II MMX SSE 3D! E64
                •       •
Инструкцията се изпълнява, ако CPUID(1) връща:
(ECX{3} = 1) AND ((EAX{8..11} ≥ 6) OR (EAX{4..7} ≥ 3) OR (EAX{0..3} ≥ 3))
Изключения
Реален режими
#GP  
Защитен и V86 режим
#GP(0) IA32_SYSENTER_CS = 0
 
Съдържание Пълен текст
 
  PDF, 3.6M Приложение, 18К