首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >x86段描述符布局-为什么会很奇怪?

x86段描述符布局-为什么会很奇怪?
EN

Stack Overflow用户
提问于 2015-05-15 07:14:53
回答 1查看 1.1K关注 0票数 7

为什么Intel选择在段描述符中将段的基和限制分割成不同的部分,而不是使用连续位呢?

参见01.htm的图5-3。

为什么他们不将基地址存储在位0到31,限制在位32到51,并使用其他位的剩余位置(或一些类似的布局)?

EN

回答 1

Stack Overflow用户

发布于 2016-04-19 21:10:03

Raymond Chen已经在评论中回答了这个问题:

为了与80286兼容。80286的最大区段大小为2^16,最大基数为2^24。因此,基场和极限场为16位和24位宽。当尺寸和底座扩大到32位时,它们必须放在其他地方,因为好的地方已经被占据了。

下面是来自Intel 80286程序员参考手册的段描述符(代码或数据类型)的扫描:

作为比较,下面是Intel 64和IA-32架构软件开发人员手册(第3A卷)的截图:

格式完全相同,但保留位的使用除外。基座从24位扩展到32位,段限从16位扩展到20位,并增加了一些额外的标志。(“访问”位作为第二个屏幕截图中“类型”字段的一部分)

因此,简而言之:布局很奇怪,因为它是为16位处理器设计的旧布局的向后兼容扩展。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30253678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档