段描述符:

1.CR0寄存器(control register 0): PE位。计算机可以决定自己留在哪个世界

2.GDT(Global Descriptor Table, 全局描述符表), 数组的一个元素就是一个段描述符。这样一来就可以通过下标索引的方法来找到所有的段描述符。于是在 80386 的世界里, 原来的段寄存器就用来存放段描述符的索引, 另外还包含了一些属性, 这样的一个结构叫段选择符(Selector)

3.在 80386 中引入一个寄存器 GDTR, 专门用来存放 GDT 的首地址和长度。需要注意的是, 这个首地址是线性地址, 使用这个地址的时候不需要再次经过分段机制的地址转换。最后 80386 和操作系统约定, 让操作系统事先把GDT 准备好, 然后通过一条特殊的指令把 GDT 的首地址和长度装载到 GDTR 中, 计算机就可以开启上述的分段机制了。

4.在段描述符中含有一个 DPL 域(Descriptor Privilege Level), 它描述了一个段所在的特权级。

5.在段选择符中含有一个 RPL 域(Requestor’s Privilege Level), 它描述了请求者所在的特权级。

6.**CPL(Current Privilege Level)**指示当前进程的特权级, 一般来说它和当前CS 寄存器所指向的段描述符(也就是当前进程的代码段)的 DPL 相等。