2、段描述符 段描述符由2个双字即64字节组成,用来提供段的基址、段长、段类型以及当前特权级等段的信息。图5- 是段描述符结构图。段的基地址由32位表示,在描述符中分在不连续的3个字域,描述符中第一个双字的D31~D24位表示段基地址的高8位,D7~D0表示次高8位,描述符第二个双字的D31~D16位表示段基地址的低16位,组合在一起形成32位的段基址。段的长度(段限)由2个字域组成,共20位,分布在描述符第一个双字的D19~D16位和第二个双字的D15~D0。段限和粒度标志G(D23)联合起来使用,当粒度标志为0,表示段的规模为1B~1MB,段长度的单位为字节,最大段长为1M字节;当粒度标志为1,段的规模为4KB~4GB,段长度的单位为4K字节,最大段长为4GB字节。S位(D12)是描述符类型标志,对它置0或1分别表示定义的段描述符用作系统段还是代码数据段。D11~D8是段类型字段,这5位的对段的类型做了具体描述。根据描述符类型标志S的不同状态,类型字段编码所表示的意义也不同。表5-6 和表5-7 分别表示了代码数据段类型码和系统段与门描述符的类型码的含义。两位的DPL是描述符特权级字段,用来指定段的特权级别0~3,0为最高特权级,定义特权级用于控制程序对段的访问。AVL位为1指示该段只能被系统软件使用。D/B位表示缺省操作规模位,该位为0表示描述符指示的段为16位段,为1表示指示32位段;符号D和B分别指示代码段和堆栈段。P位是段存在的标志位,1表示该段存在。 |