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

use*_*881 6 cpu x86 x86-64 protected-mode

我正在阅读intel 软件开发人员手册(第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模式确保应用程序运行.

Ker*_* SB 5

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

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

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

IA-32e 模式:仅适用于 64 位 CPU。CPU 可以有选择地在兼容模式和长模式之间切换。

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