(80386CPU)保护模式的特点:段机制和页机制(保护模式是保护硬件资源以及OS内核的作用)。
1、段寄存器结构
Segment{
WORD Selector; //段选择子(可见)16位
WORD Attributes; //段属性 (不可见)16位
WORD Base; //段起始地址 (不可见)32位
WORD Limit; // 段大小 (不可见)32位
}
段寄存器总结构96位,其中16位可见,80位不可见,80位不可见中存在64位数据有效。
2、段寄存器只能看到16位,那么其96位数据是如何存储的?
内存中的专属寄存器内容叫做GDT(Global Descriptor Table 全局描述符表)。
在执行 MOV DS,AX的过程中,段寄存器写入的是96位,其中查找过程是:
1)段寄存器中存储AX的值作为自己的Selector的值,并用该值当作索引去内存中的GDT表中去查询对应下标的64位值。(之所以是64位,因为不可见80位中只有64位有效)。
2)将读取的值,返回到段寄存器不可见的部分【Base(32bit) , Attributes(16bit), Limit(32bit)】中。
GDT是Protected Mode所必须的数据结构,也是唯一的。且正如它的名字(GDT Global Descriptor Table)所示,它是全局可见的,对任何一个任务而言都是这样。