从高特权级跳转到低特权级怎么回事

我在学习保护模式特权级转换时,看到书上列出了很多转换规则,复杂之极,于是个人总结一下(简单总结,高手见笑了),如下:
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 常规是这样

猜你喜欢

转载自blog.csdn.net/qq_40627648/article/details/85010636