| 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 |
|