段类型如何区分?

时间:2018-09-04 18:30:32

标签: x86 x86-64 hardware intel gdt

如何区分不同类型的细分?维基百科指出:

  

可以将段定义为代码段,数据段或系统段

它还指出:

  

清除了第12位的描述符是“系统描述符”,并用于   用于专业目的。

因此,我收集到这个“系统位”用于标识系统段,但是代码段和数据段呢?另外,由于这些标识符是分开存储的,而不是作为单个2位值存储的,因此您能否获得组合类型,例如系统代码和系统数据段?

1 个答案:

答案 0 :(得分:3)

段描述符的 Type 字段不是一位,而是4位。

Format of a segment descriptor with 1 bit for the system/non-system type and 4 bit of sub type

S 字段定义描述符是否为系统描述符(位为空)。
Type 字段的解释取决于 S 的值。

非系统描述符

Non system descriptors

系统描述符

System descriptors


为了更好地理解保护模式/长模式分段的工作原理,我建议您放弃Wikipedia来支持Intel手册。