为什么x86寄存器的命名方式如何?

时间:2009-05-21 13:27:29

标签: assembly x86 history naming

例如,累加器名为EAX,而指令指针名为IP。我也知道有一些名为CLDH的字节。我知道所有名字都必须有一个约定,但它是什么?

5 个答案:

答案 0 :(得分:23)

C和D是数字/类型,H表示高电平,L表示高电平寄存器的低电平部分。 http://en.wikipedia.org/wiki/X86

维基百科解释得非常好。

来自维基百科的更多内容:

  1. AX / EAX / RAX:累加器
  2. BX / EBX / RBX:base
  3. CX / ECX / RCX:counter
  4. DX / EDX / RDX: 数据/一般

答案 1 :(得分:19)

Something i found

* EAX - Accumulator Register
* EBX - Base Register
* ECX - Counter Register
* EDX - Data Register
* ESI - Source Index
* EDI - Destination Index
* EBP - Base Pointer
* ESP - Stack Pointer

答案 2 :(得分:17)

这是历史。 x86来自8086,它来自8080,它来自8004,来自4004.有16位寄存器AX,BX等,而对于80386,它们被“扩展”到32位。

补充:BTW摩托罗拉68K从一开始就拥有32位寄存器,因此在最初的几十年内编程要容易得多。我参与的项目是出于商业原因选择英特尔,而不是技术原因。

答案 3 :(得分:5)

答案 4 :(得分:3)

旧处理器具有名为A,B等的累加器(按字母顺序排列)。当开发16位和32位累加器时,工程师增加了X(扩展)。所以关于历史,因为语言C被称为这样,因为它是从B语言(贝尔实验室)开发的。

该惯例只是内部的,以跟上他们熟悉的名称。