除了Intel x86 64位CPU中的兼容模式之外,为什么还需要保护模式?

时间:2013-12-30 22:12:11

标签: x86 cpu x86-64 protected-mode

我正在阅读intel software developer manual(第3.1节)。这是说

  

IA-32架构支持三种基本操作模式:受保护   模式,实地址模式和系统管理模式。

  

Intel 64架构增加了IA-32e模式。 IA-32e模式有两种子模式。

这两个子模式是Compatibility mode64-bit mode。因此Intel 64架构包含4种操作模式(保护模式,实地址模式,系统管理模式,IA-32e模式)。但我不明白Intel 64需要什么样的保护模式? IA-32e的兼容性子模式允许运行传统的16位和32位应用程序而无需重新编译为64位操作系统,64位子模式允许操作系统运行访问64位线性地址空间的应用程序。我使用64位操作系统时使用保护模式的地方? IA-32e模式确保应用程序运行。

1 个答案:

答案 0 :(得分:3)

我相信组织是这样的。在任何给定时间,整个CPU必须处于以下模式之一(不包括维护模式):

IA-32实模式:这就是处理器启动的方式。

IA-32保护模式: 32位执行环境。通常的保护机制正在发挥作用; CPU可以选择性地进入虚拟8086模式。

IA-32e模式:这仅适用于64位CPU。 CPU可以在兼容性和长模式之间选择性地移动。

也就是说,如果要执行任何 64位代码,则需要进入IA-32e模式。您现在可以基于每个段决定是以兼容模式执行32位代码还是以长模式执行64位代码。