【发布时间】:2011-07-04 18:53:46
【问题描述】:
在哪里可以找到 80x86 寄存器全名? 我知道 EAX 表示扩展 AX。
那么,AX 的含义是什么? IE。 AX是缩写吗?
【问题讨论】:
-
@Mitch Wheat,这实际上是答案,你应该让它成为答案。
标签: assembly x86 naming cpu-registers
在哪里可以找到 80x86 寄存器全名? 我知道 EAX 表示扩展 AX。
那么,AX 的含义是什么? IE。 AX是缩写吗?
【问题讨论】:
标签: assembly x86 naming cpu-registers
寄存器名称在过去 40 年中不断演变。 1974 年推出的 Intel 8080 处理器有 8 位寄存器,分别命名为 A、B、C、D、E、H 和 L。A 到 E 似乎相当明显,但 H 和 L?嗯,它们组合成一个16位的HL寄存器,主要用作内存指针,所以H代表高位,L代表低位。
1979 年,英特尔发布了 8086 处理器(最初的 IBM PC 基于其近亲 8088)。 8086 有 16 位寄存器,4 个“主”寄存器和 4 个索引寄存器。主要寄存器称为 AX、BX、CX、DX,是 8080 的 A 到 D 的自然扩展,它们中的每一个也可以称为两个 8 位寄存器,称为 AL、AH、BL、BH 等。 8086变址寄存器,也是16位,在其主要功能之后被称为SI、DI、BP和SP。 SI 和 DI 表示源和目标索引,SP 表示堆栈指针,BP 表示(堆栈)基指针。
32 位世界的扩展,随着 1986 年 80386 的推出,为我们带来了 EAX、EBX、ECX、EDX、ESI、EDI、EBP 和 ESP,寄存器的 32 位变体,8086保持兼容性所需的(较低的)16 位和 8 位访问的名称仍然存在。
在 AMD 击败英特尔进入市场,定义 64 位扩展之前,情况一直如此。
有趣的是,为 8086 处理器组装的二进制代码与所有继承它的 x86 处理器兼容。
参考资料:
【讨论】:
x86 架构所有方面的规范参考可以在Intel Processor Manuals 中找到。注册文档有点分散,但您可以在以下位置找到它们:
【讨论】: