我在学习保护模式特权级转换时,看到书上列出了很多转换规则,复杂之极,于是个人总结一下(简单总结,高手见笑了),如下:
1.不使用控制门时只能进行同级跳转(无论jmp还是call)。
2.要想进行不同级别的跳转,只能使用控制门。
但是对于上面第2条,书上只介绍了能利用“call + 控制门”从低特权级跳转到高特权级,可是并没有说“call + 控制门”能够实现从高特权级跳转到低特权级。书上只是简单的提到,“call + 控制门”从低特权级跳转到高特权级之后,与call对应的ret语句能实现从高特权级跳转到低特权级。
所以我想问一下,“从高特权级跳转到低特权级”只能用ret语句来实现么?
1.不使用控制门时只能进行同级跳转(无论jmp还是call)
call 和 jmp 可以通过任务切换的方式进行不同级的跳转。
2.要想进行不同级别的跳转,只能使用控制门。
如下回答。
“从高特权级跳转到低特权级”只能用ret语句来实现么?
可以使用任务切换的方式,或者 iret 指令
-
对,我忽略了“任务切换”,如果我没有理解错,“任务切换”可以从一个任务的任何特权级转移到另一个任务的任何特权级,不知道我说的对不对?
-
如果不考虑“任务切换”的方式,“从高特权级跳转到低特权级只能用ret或iret来实现”这句话对不对?
麻烦解答,先谢谢了。
1 yes
2 常规是这样