gpt4 book ai didi

x86 - 为什么在 Intel x86 64 位 CPU 中除了兼容模式还需要保护模式?

转载 作者:行者123 更新时间:2023-12-04 12:32:16 24 4
gpt4 key购买 nike

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

The IA-32 architecture supports three basic operating modes: protected mode, real-address mode, and system management mode.





Intel 64 architecture adds IA-32e mode. IA-32e mode has two sub-modes.



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

最佳答案

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

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

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

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

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

关于x86 - 为什么在 Intel x86 64 位 CPU 中除了兼容模式还需要保护模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20848412/

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