3

CPU が X86 でカーネル モードからユーザー モードに切り替わるタイミングと方法: 正確には何をしますか? この移行はどのように行われますか?

4

2 に答える 2

6

CSx86 保護モードでは、CPU が実行している現在の特権レベルは、レジスタの最下位 2 ビット(RPLセグメント セレクタのフィールド) によって制御されます。

したがって、カーネル モード (CPL=0)からユーザー モード( への切り替え)CPL=3)は、カーネル モードの CS 値をユーザー モードの CS 値に置き換えることによって実現されます。これを行うには多くの方法がありますが、典型的な方法の 1 つは、IRETをポップしEIPCSからEFLAGS登録する命令です。スタック。

于 2012-11-07T02:59:47.527 に答える
2

iretたとえば、これを行います。こちらのコードを参照してください(INTERRUPT_RETURN マクロ)

于 2012-11-06T09:29:39.777 に答える