如果还记得前面的GDT全局描述符表的话,那么一定不会忘记段描述符中有个s字段,若为0,则表示这个描述符是系统段,若为1,则是普通的段描述符;普通的段为ds,es,ss,cs等等,系统的段则有GDT,调用门,TSS,LDT等等。现在来看看几个系统段描述符格式;
---------------------------------------------------------------------------------调用门-------------------------------------------------------------------------------
首先来看下调用门描述符格式(GDT在前面已经分析过了):
依旧是上面为高32位,下面是低32位。因为调用门是用来给低特权级程序调用高特权级例程的桥梁,所以调用门描述符格式中只要提供该例程所在的段描述符,以及在该段内的偏移位置就可以了。
所以低32位中16~31是高特权级例程所在的代码段选择子,也提供了32位的段内偏移量。
P位依然是段存在位标识;
DPL是表示调用门的特权级,和目标例程的特权级不一样。这里有个有趣