为什么 32 位称为 x86 而不是 x32?

2025-06-08

为什么 32 位称为 x86 而不是 x32?

为什么 32 位称为 x86 而不是 x32?

32 位不叫 x86。

有数十种 32 位架构,例如 MIPS、ARM、PowerPC、SPARC,这些都没有被调用x86

x86 是一个术语,指的是任何源自英特尔 8086 处理器指令集的指令集。它的后继者分别命名为 80186、80286、80386 和 80486,它们都与最初的 8086 处理器兼容,能够执行为其编写的代码。后来,英特尔也发布了与 8086 兼容的处理器,例如奔腾、赛扬、酷睿和至强,但 x86 这一名称已经稳定下来,涵盖所有基于该指令集系列的处理器。

其中,8086、80186、80286是16位处理器。80386是32位处理器,新增了32位操作模式,但除了保留原有的16位模式外,还增加了第三种模式——“虚拟86”模式,允许在32位操作系统下运行16位程序。

后来,x86 的 64 位扩展,即 x86-64,在 AMD K8 以及后来的英特尔处理器中得到开发和实现。这些基于 x86-64 架构的 64 位处理器也被称为 x86 处理器。

你为什么会问这个问题,答案是

您可能已经看到一些 Windows 软件包的“x86”和“x64”名称。

现代 Windows 基于 Windows NT。Windows NT 从未支持过 16 位 x86 处理器,它最初可以在 32 位 x86(例如 386、486、奔腾等)以及 MIPS、PowerPC 和 Alpha 处理器上运行。MIPS、PowerPC 和 386 都是 32 位架构,而 Alpha 是 64 位架构。

为了区分为这些不同指令集编译的 Windows,必须为架构使用一些简短而精确的名称。这些名称也用于许多脚本、构建系统等,因此一旦选定,就无法更改,否则会造成大量破坏。“x86”完美地标识了 32 位 x86 版本的 Windows NT。任何包含数字 32 的命名都没有任何意义,因为 Windows NT 支持三种不同的 32 位架构。

后来还添加了对 itanium(IA64)的支持,并放弃了对 MIPS、PowerPC 和 MIPS 的支持。

那么,正确的问题是:为什么64位的x86被称为x64?

十多年后,当 x86 指令集的 64 位扩展发布时,微软开始将后来的 NT 衍生 Windows 移植到该指令集,必须为针对该架构编译的版本选择一些官方技术名称。x86 的 64 位扩展的规范最初来自 AMD,因此有人称之为“amd64”,而“intel64”指的是 Itanium。但微软不想在他们为该架构选择的名称中包含任何公司的名称,而且后来使用的“x86-64”作为该架构的通用名称尚未稳定,“X86-64”名称上的破折号在出现架构名称的某些地方可能会出现问题,必须通过某些代码进行解析。因此,他们选择了“x64”作为 x86 的 64 位版本。

甚至后来,Windows 放弃了对 Itanium 架构的支持,并添加了对 32 位和 64 位 ARM 架构的支持。64 位 ARMv8 通常被称为 A64 或 Aarch64,我不确定 Windows 中它的官方技术名称到底是哪一个。

因此现在,Windows 支持四种架构:386(“x86”)、x86-64(“x64”)、32 位 ARMv7 和 64 位 ARMv8。

因此,“x64”目前仅表示 Windows 当前支持的这两种 64 位架构之一。

来自 Quora 问题:https://www.quora.com/Why-is-32-bit-called-x86-and-not-x32

鏂囩珷鏉ユ簮锛�https://dev.to/alphaolomi/why-is-32-bit-known-x86-and-not-x32-46ae
PREV
React Portfolio 如何使用 React.js 模板创建你的作品集网站
NEXT
在 Spring Boot 中使用 JWT 构建基于角色的访问控制系统