1. 程式人生 > >從高特權級跳轉到低特權級怎麼回事

從高特權級跳轉到低特權級怎麼回事

我在學習保護模式特權級轉換時,看到書上列出了很多轉換規則,複雜之極,於是個人總結一下(簡單總結,高手見笑了),如下:
1.不使用控制門時只能進行同級跳轉(無論jmp還是call)。
2.要想進行不同級別的跳轉,只能使用控制門。

但是對於上面第2條,書上只介紹了能利用“call + 控制門”從低特權級跳轉到高特權級,可是並沒有說“call + 控制門”能夠實現從高特權級跳轉到低特權級。書上只是簡單的提到,“call + 控制門”從低特權級跳轉到高特權級之後,與call對應的ret語句能實現從高特權級跳轉到低特權級。

所以我想問一下,“從高特權級跳轉到低特權級”只能用ret語句來實現麼?

1.不使用控制門時只能進行同級跳轉(無論jmp還是call)

call 和 jmp 可以通過任務切換的方式進行不同級的跳轉。

2.要想進行不同級別的跳轉,只能使用控制門。

如下回答。

“從高特權級跳轉到低特權級”只能用ret語句來實現麼?

可以使用任務切換的方式,或者 iret 指令

  1. 對,我忽略了“任務切換”,如果我沒有理解錯,“任務切換”可以從一個任務的任何特權級轉移到另一個任務的任何特權級,不知道我說的對不對?

  2. 如果不考慮“任務切換”的方式,“從高特權級跳轉到低特權級只能用ret或iret來實現”這句話對不對?

麻煩解答,先謝謝了。

1 yes

2 常規是這樣