在哪里可以找到 80x86 寄存器全名?我知道 EAX 意味着扩展 AX。
那么,AX 的含义是什么?即 AX 是首字母缩略词吗?
在哪里可以找到 80x86 寄存器全名?我知道 EAX 意味着扩展 AX。
那么,AX 的含义是什么?即 AX 是首字母缩略词吗?
寄存器名称在过去 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 体系结构所有方面的规范参考可以在英特尔处理器手册中找到。注册文档有点分散,但您可以在以下位置找到它们: