全局描述符表GDT(Global Descriptor Table)
在整个系统中,全局描述符表GDT只有一张(一个处理器对应一个GDT),GDT可以被放在内存的任何位置,但CPU必须知道GDT的入口,也就是基地址放在哪里。
Intel的设计者们提供了一个寄存器GDTR用来存放GDT的入口地址,程序员将GDT设定在内存中某个位置之后,可以通过LGDT指令将GDT的入口地址装入此寄存器,从此以后,CPU就根据此寄存器中的内容作为GDT的入口来访问GDT了。GDTR中存放的是GDT在内存中的基地址和其表长界限。
也就是说,GDT是全局的,存放在内存中的某个位置,而这个位置是由你来指定给CPU的,换句话说,你来钦定!
创建GDT全局描述符表使用到一个48位的寄存器:GDTR寄存器。
1)首先,在内存中划分一些内存段,并且每个内存段赋予一个索引。
2)然后,使用lgdt指令,设置GDT的索引和表信息的内存地址到GDTR寄存器。
3)进入保护模式,指令跳转,从实模式分段方式寻址切换到使用GDT分段方式寻址。
4)GDT可以被放在内存的任何地方,只要提供内存地址给GDTR寄存器就可以了。
GDT格式
GDT全局描述符表
- 表基地址,表基地址位GDT段表在内存的地址,GDT段表是一个列表,存储了多个 GDT段描述符。
- 表界限:GDT段表的空间信息,以字节为单位。
GDT全局描述符表
最新推荐文章于 2024-05-13 19:50:56 发布