gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 15:43:05 26 4
gpt4 key购买 nike

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

参见http://css.csail.mit.edu/6.858/2014/readings/i386/s05_01.htm的图5-3

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

最佳答案

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

For compatibility with the 80286. The 80286 had a maximum segment size of 2^16 and a maximum base of 2^24. Therefore, the base and limit fields were 16 and 24 bits wide. When the size and base were expanded to 32 bits, they had to be placed somewhere else because the good places were already taken.



这是英特尔 80286 程序员引用手册中的段描述符(代码或数据类型)的扫描:

enter image description here

为了进行比较,以下是来自英特尔® 64 和 IA-32 架构软件开发人员手册(第 3A 卷)的屏幕截图:

enter image description here

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

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

关于x86 段描述符布局 - 为什么很奇怪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30253678/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com