例如,累加器被命名为EAX
and,而指令指针被调用IP
。我也知道有字节称为CL
and DH
。我知道所有名称都必须有一个约定,但它是什么?
问问题
5203 次
5 回答
24
C 和 D 是数字/类型,H 表示高位,L 表示高位寄存器的低位。 http://en.wikipedia.org/wiki/X86
维基百科解释得很好。
更多来自维基百科:
- AX/EAX/RAX:累加器
- BX/EBX/RBX:基础
- CX/ECX/RCX:计数器
- DX/EDX/RDX:数据/一般
于 2009-05-21T13:28:44.253 回答
24
* EAX - Accumulator Register
* EBX - Base Register
* ECX - Counter Register
* EDX - Data Register
* ESI - Source Index
* EDI - Destination Index
* EBP - Base Pointer
* ESP - Stack Pointer
于 2009-05-21T13:30:04.077 回答
18
它的历史。x86 来自 8086,8080 来自 8008,8008 来自 4004。有 16 位寄存器 AX、BX 等,对于 80386,它们被“扩展”为 32 位。
补充:顺便说一句,摩托罗拉 68K 从一开始就有 32 位寄存器,所以在最初的几十年里编程要容易得多。我参与的项目选择英特尔是出于商业原因,而不是技术原因。
于 2009-05-21T13:31:28.787 回答
5
较旧的处理器具有名为 A、B 等的累加器(按字母顺序排列)。在开发 16 位和 32 位累加器时,工程师添加了一个 X(扩展)。所以这都是关于历史的,因为 C 语言是这样称呼的,因为它是从 B 语言(贝尔实验室)发展而来的。
该约定只是内部的,以跟上他们已经熟悉的名称。
于 2009-05-21T13:31:44.417 回答
5
这里有一些很好的答案:x86 汇编寄存器——为什么它们的工作方式是这样的?
于 2009-05-21T13:34:34.693 回答