在哪里可以找到 x86 寄存器名称?
在哪里可以找到 80x86 寄存器的全名? 我知道EAX的意思是扩展AX。
那么AX到底是什么意思呢?即 AX 是缩写吗?
Where I can find the 80x86 register full names?
I know that EAX means Extended AX.
What is then, the meaning of AX? I.e. is AX an acronym?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
过去 40 年来,寄存器名称不断演变。 1974 年推出的 Intel 8080 处理器有 8 位寄存器,分别命名为 A、B、C、D、E、H 和 L。A 到 E 看起来相当明显,但 H 和 L 呢?好吧,它们被组合到16位HL寄存器中,该寄存器主要用作内存指针,因此H代表高位,L代表低位。
1979 年,Intel 发布了 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 表示(堆栈)基指针。
随着 1986 年 80386 的推出,向 32 位世界的扩展为我们带来了 EAX、EBX、ECX、EDX、ESI、EDI、EBP 和 ESP,这些寄存器的 32 位变体,8086 名称仍然保留维持兼容性所需的(低)16 位和 8 位访问。
事情一直如此,直到 AMD 在市场上击败英特尔,定义了 64 位扩展。
也许有趣的是,为 8086 处理器组装的二进制代码与所有后续的 x86 处理器兼容。
参考文献:
The register names have evolved over the past 40 years. The Intel 8080 processor, introduced in 1974, had 8-bit registers named A, B, C, D, E, H and L. A thru E seem fairly obvious but H and L? Well, they were combined into the 16-bit HL register which was primarily used as a memory pointer, so H for high and L for low.
In 1979 Intel released the 8086 processor (the original IBM PC was based on its close cousin the 8088). The 8086 had 16-bit registers 4 "main" ones and 4 index registers. The main registers were called AX, BX,CX, DX, a natural eXtension of the 8080's A through D, each of these could also be referenced as two 8-bit registers which were called AL, AH, BL, BH, etc. The 8086 index register, also 16-bit, were called SI, DI, BP and SP after their primary functions. SI and DI for Source and Destination Index, SP for Stack Pointer, and BP for (stack) Base Pointer.
The extension to the 32-bit world, with the introduction of the 80386 in 1986, brought us EAX, EBX, ECX, EDX, ESI, EDI, EBP and ESP, the 32-bit variants of the registers, the 8086 names remained for the (lower) 16 bits and the 8 bit accessing required to maintain compatibility.
There things stood until AMD, beating Intel to market, defined 64-bit extensions.
It is perhaps interesting to note that binary code assembled for the 8086 processor is compatible with all the x86 processors which succeeded it.
References:
x86 架构各个方面的规范参考可以在英特尔处理器手册中找到。寄存器文档有点分散,但您可以在以下位置找到它们:
The canonical reference for all aspects of the x86 architecture can be found in the Intel Processor Manuals. The register documentation is a bit spread out, but you can find them in: