【问题标题】:Where can I find x86 register names? [duplicate]我在哪里可以找到 x86 寄存器名称? [复制]
【发布时间】:2011-07-04 18:53:46
【问题描述】:

在哪里可以找到 80x86 寄存器全名? 我知道 EAX 表示扩展 AX。

那么,AX 的含义是什么? IE。 AX是缩写吗?

【问题讨论】:

标签: assembly x86 naming cpu-registers


【解决方案1】:

寄存器名称在过去 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 处理器兼容。

参考资料:

【讨论】:

【解决方案2】:
【解决方案3】:

x86 架构所有方面的规范参考可以在Intel Processor Manuals 中找到。注册文档有点分散,但您可以在以下位置找到它们:

  • 第 1 卷 - 第 3.4 节中的通用寄存器; 8.1.2 中的 FPU 寄存器; 9.2.2 中的 MMX 寄存器; SSE在10.2.2、10.2.3注册
  • 第 3A 卷 - 系统寄存器 (2.1.6);另见该部分的交叉引用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 2014-11-20
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多