全局描述符表GDT

本文详细介绍了全局描述符表(GDT)在保护模式下的作用,包括段描述符的格式、各字段如段基址、段界限、Type、S字段、DPL、P字段的详细解释,以及如何通过lgdt指令加载GDT。讨论了段基址的3部分存储、段界限的大小表示以及特权级的概念,并提到了P字段在开启分页模式后的变化。
摘要由CSDN通过智能技术生成

在保护模式下必须使用段寻址,而我们必须先定义完所有段描述符后才能使用段机制。我们把所有段描述符都放在全局描述符表(GDT)中。

段描述符的格式

段描述符有许多属性,见下图。其中有的属性(比如段基址)被分成3部分存放,这是因为80386要兼容过去的CPU(80286已经有保护模式了)。

附上从网上找的图
网上找的图

各个字段的作用

段基址

在分段寻址机制中我们已经知道段基址是什么了:“段基址:偏移量”。

该字段有32位,由于历史原因被分为3部分存放在段描述符表中。还好分3部分存放对性能没有影响,为什么呢?

段界限字段和G字段

用来表示一个段的大小,结合段基址就可以知道段的起始地址和结束地址。“段基址:偏移量”中当偏移量超过段界限时CPU会触发相应的异常。

段界限只有20位,可以表示段的大小:

  • 如果G(Granularity)字段为0,表示单位为Byte。段界限可表示1B~1MB的大小
  • 如果G字段为1,表示单位为4KB。段界限可表示4KB~4GB的大小
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值