GDT 全局描述符表
发布日期:2021-06-29 11:52:21
浏览次数:2
分类:技术文章
本文共 607 字,大约阅读时间需要 2 分钟。
我们知道CPU存在实模式和保护模式的操作模式。当计算机启动后,我们进入的是实模式,而实模式的内存寻址方式是通过:段值 × 16 + 偏移 = 物理地址。这样只能具有1MB的寻址能力。如果想要更为强大的寻址能力,就必须通过一定机制,进入具有更强大寻址能力的保护模式。
在保护模式下,不光提供了强大的寻址能力,还提供了内存保护,能够防止用户程序改写内核代码,并为操作系统提供了更好的硬件保障。在该模式下,有了32位的寄存器,一个寄存器就可以表示4G的地址空间,那段值加偏移这样的寻址方式是不是就不用了呢?当然不会。在这里,而是用了另外的方式来表示。
采用的方式就是引入了数据结构GDT,即全局描述符表,不知道有多少人听过?说简单点,GDT就是一个数组,每一个元素就是一个描述符,多个组合一起就构成了全局描述符表。而每一个描述符共64位,包含了以下的这些信息:段基址、段长度、属性。原来的段寄存器,比如CS,DS等存的值则不是段偏移了,而是GDT的索引,通过该索引就可以找到对应的描述符。现在是不是明白了呢?接下来我们再详细的解释一下一个描述符中各个位的意义吧。
段寄存器中保存的是索引
3-15位用来索引,所以最多可以定义2^13-1个段描述符
2^13-1 = 8192 也就是说最多可以设置8192个段
每个段描述符 占用8个字节 64位 总共用来描述段的属性 需要 8192*8 = 65535字节 = 64kb转载地址:https://blog.csdn.net/ZZHinclude/article/details/117589157 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月02日 23时22分10秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
2021.4.28课堂总结和作业
2019-04-29
2021.4.29课堂总结
2019-04-29
2021.4.30课堂总结和作业
2019-04-29
需要吗?2000GB+学习视频教程 面试资料免费下载
2019-04-29
MySQL对已存在数据库表添加自增ID字段
2019-04-29
idea中的一些常用快捷键
2019-04-29
js校验表单后提交表单的三种方法总结【转载】
2019-04-29
欢迎使用CSDN-markdown编辑器
2019-04-29
a标签中href调用js的几种方法
2019-04-29
jstl标签详解
2019-04-29
Eclipse中使用SVN的使用
2019-04-29
JSON.parse和eval的区别
2019-04-29
JQuery中$.ajax()方法参数详解
2019-04-29
正则表达式的数字实例
2019-04-29
OGNL表达式struts2标签“%,#,$”的区别
2019-04-29
struts2中<s:if>标签的使用
2019-04-29
js 刷新页面window.location.reload();
2019-04-29
【转】EasyUI 验证
2019-04-29