Which instructions can not be issued in specific C

2019-02-19 03:43发布

问题:

According to this source (Level 3 - 5) specific CPU rings can not do certain things, such as ring 1, 2, 3 code can not set up GDT, as os kernel would crash.

While it is obvious that Ring 0 can execute all instructions, I am wondering which instructions can not be issued in rings 1, 2 and 3?

I could not find anything on either wikipedia or osdev and similar sources which would state what instructions can not be issued in specific ring.

回答1:

The following instructions cannot be executed in Ring 3:

LGDT
LLDT
LTR
LIDT
MOV (to and from control registers only)
MOV (to and from debug registers only)
LMSW
CLTS
INVD
WBINVD
INVLPG
HLT
RDMSR
WRMSR
RDPMC
RDTSC


标签: x86 cpu