打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
段选择符,段描述符,描述符表

段描述符(8字节)存放于 GDT/LDT

 

段选择符(16位) + 偏移量(32位) = 逻辑地址

 

段寄存器仅仅存放段选择符,段寄存器中的段选择符指定非编程段寄存器中的段描述符。

 

关于描述符,描述符表,段选择符的区别。

 

1、描述符

     描述符是一个八字节的组合数据组,在80286中,组内有最高2个字节保留未用,其余6个字节分别存储着程序(或数据)段所占内存的长度(段限长,2个字节)、起始的物理地址(称段基地址,3个字节)和访问权(1个字节)。
     内存中每段程序(或数据)均可用一个描述符来表示。与任务转换有关的数据的段描述符称任务描述符。
2、描述符表
     将不同程序(或数据)段的描述符在内存中连续排列起来,所形成的表称为描述符表。
     由与全局有关的程序(或数据)段的描述符组织在一块的表称全局描述符表(GDT)。一个系统内只有一张GDT。存放该表的物理地址和长度的寄存器称GDTR。
     所有中断服务程序的描述符表称中断描述符表(IDT),一个系统也仅有一张IDT。
     由不涉及全局的程序(或数据)段的描述符所组成的表称局部描述符表(LDT)。
3、段选择符
     由与任务转移有关的描述符所组成的表称段选择符。
     段选择符用16位来表示,最高13位表示要使用的段在描述符表中的索引号,低3位的前两位表示使用段的权等级,最后一位指明描述符是位于GDT中还是位于LDT中。GDT和LDT各占用64KB内存,含8K个描述符。

 

由于一个段描述符是8字节长,因此它在GDT或LDT内的相对地址是由段选择符的最高13位的值乘以8得到的。

例:如果GDT在0x00020000(这个值保存在gdtr中),且由段选择符所指定的索引号为2,那么相应的段描述符地址是0x00020000 + (2 * 8)= 0x00020010

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
zz 保护模式概述
程序中的代码段、数据段、堆、栈是怎么回事
Linux进程-进程的创建
Windows内存管理
Linux内存管理图解
我去,又又又被内存坑了!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服