为什么需要的段描述符?
保护模式下无法直接裸访内存,所有可访问的内存段,都必须提前在 GDT 中定义登记。段描述符是存储内存段基址、访问界限、运行权限与属性的核心结构,既是 CPU 内存寻址的关键,也是实现内存隔离的基础。没有段描述符,保护模式的隔离、权限管控功能就无法生效。
段描述符结构
其各段含义:
G:粒度位。G=0时,以1B为单位,范围为(1b-1mb(2的20次方X1b)),G=1则以4kb为单位
S:指定描述符的类型,S=0则表示为一个系统段,S=1则表示一个代码段或数据段
DPL:描述符的特权等级。0为最高级,3为最低级
P:段存在位。用于指示描述的段是否存在,P=0,表示对应的内存空间不存在,P=1,表示内存空间存在
D/B:
D:默认的操作数大小;D=0,使用IP,D=1,使用EIP
B:默认的栈指针大小;B=0,使用SP,B=1,使用ESP
type:
