操作系统与应用软件中64位与32位的关系

2025-10-19 20:24:25

1、么,64 位计算是如何实现的呢?首先要说明 x86-64 是站在 x86 的肩膀上的,并没有另起炉灶,CPU 指令长度(即指令占有的二进制位数)不变,原有的指令集也一律保留,所以 x86 和 x86-64 总体的架构是一致的,指令完全兼容。改变的部分,原有通用寄存器容量均增长为 64 位,顺便还加了 8 个,同时增加了 8 个 128 位的 XMM 寄存器,内部总线(即 CPU 部件间的数据通道)宽带也增至 64 位或更多。当然还有增加用于支持这些寄存器的相关指令。由此可以看出,CPU 处理的数据均支持 64 位,内存编址理论上也可达到 2的64次方 个地址空间,但由于是在 x86 的架构上构建的 64 位计算,64 位线性寻址能力还不成熟,实际上的可编址并没有这么多,但可改进。

 

之前也一再强调,x86-64 只不过是 x86 的扩展,因此现有的 64 位处理器可以同时运行 32 和 64 位程序。下面以 Intel 的技术(AMD 的原来其实一样)为例说明。具体情况要分为下面几类:

1. 没有激活 64 位(传统模式/ IA32 模式)。也就是没有为机器安装 64 操作系统,只使用 32 位操作系统。这时 CPU 只会工作在纯 32 位模式,第二节中提到的硬件和指令都被屏蔽掉了。

2、(下面这些是涉及 32 位模式和兼容 16 位程序指令的,这里就不再详细说明了。)

3、1.1. 实模式

 

4、1.2. 虚拟 8086 模式

 

5、1.3. 保护模式

 

2. 已经激活 64 位。这时已经安装 64 位操作系统,操作系统在启动时就将 CPU 置为 64 位工作状态。所有新寄存器、扩展寄存器和指令都被激活并可用。

 

6、2.1. IA32e 模式/ EM64T 模式。这时正在运行 64 位程序,CPU 完全以 64 位特性工作。

 

7、2.2. 兼容模式。这就是在 64 位系统下运行 32 位程序的模式了。具体的情况下面会详细说明。

 

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢