(4)段描述符P,G位

本文详细介绍了段描述符中的P位和G位。P位为1时,段描述符有效,为0则无效。G位用于决定段限界Limit的有效范围,G=0时限制在0x00000000-0x000FFFFF,G=1时扩展至0x00000FFF-0xFFFFFFFF。并给出了5个段选择子的例子,演示了如何从GDT表中查找段描述符并填充到段寄存器中。
摘要由CSDN通过智能技术生成

一、回顾

在前面的课程学习中我们了解到,段寄存器有96位,其中80位不可见,包括Base,limit,attribute。16位可见,即段选择子selector。

对段寄存器进行写入时,CPU根据段选择子到GDT表中寻找段描述符,段描述符共8字节,64位,CPU根据段描述符填充段寄存器。

那么问题就是,如何用64位的段描述符来填充80位的段寄存器呢?为了解决该问题,我们需要学习段描述符的P,G位。

段描述符结构
在这里插入图片描述段寄存器结构

在这里插入图片描述

二、P位

这个位比较简单,当P=1时,段描述符有效;当P=0时,段描述符无效。

三、G位

由于Intel考虑向前兼容,我们会发现段描述符的结构比较混乱,东一块西一块的。Attribute在段描述符高4字节的8-23位,Base在段描述符的低4字节的16-31位,高4字节的0-7位和24-31位。上述两个属性没有数据丢失,段寄存器和段描述符内的位数是一样多的。而Limit在段寄存器内占32位,在段描述符内只有20位。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值