例如,累加器命名为EAX和,而指令指针命名为IP。我还知道有一些字节命名为CL和DH。我知道所有的名称都必须有一个约定,但它是什么?
EAX
IP
CL
DH
u5i3ibmn1#
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
xam8gpfp2#
C和D是数字/类型,H表示高位寄存器的高位部分,L表示低位部分。http://en.wikipedia.org/wiki/X86维基百科解释得很好。更多来自维基百科:
yrefmtwq3#
这是历史。x86来自8086,8086来自8080,8080来自8008,8008来自4004。有16位寄存器AX,BX等,对于80386,它们被“扩展”到32位。补充:顺便说一句,摩托罗拉68K从一开始就有32位寄存器,所以在最初的几十年里编程要容易得多。我参与的项目中,英特尔是出于商业原因而不是技术原因被选中的。
ilmyapht4#
以下是一些好的答案:x86 assembly registers — Why do they work the way they do?
jc3wubiy5#
较老的处理器有累加器命名为A,B等(按字母顺序排列)。当16位和32位累加器被开发出来时,工程师们添加了一个X(扩展)。所以这一切都是关于历史的,因为C语言被这样称呼是因为它是从B语言开发出来的(贝尔实验室)。这个惯例只是内部的,为了跟上他们已经熟悉的名字。
knsnq2tg6#
下面简要说明每个x86通用寄存器的含义:
6条答案
按热度按时间u5i3ibmn1#
Something i found
xam8gpfp2#
C和D是数字/类型,H表示高位寄存器的高位部分,L表示低位部分。http://en.wikipedia.org/wiki/X86
维基百科解释得很好。
更多来自维基百科:
1.银行X/电子银行X/皇家银行X:基
yrefmtwq3#
这是历史。x86来自8086,8086来自8080,8080来自8008,8008来自4004。有16位寄存器AX,BX等,对于80386,它们被“扩展”到32位。
补充:顺便说一句,摩托罗拉68K从一开始就有32位寄存器,所以在最初的几十年里编程要容易得多。我参与的项目中,英特尔是出于商业原因而不是技术原因被选中的。
ilmyapht4#
以下是一些好的答案:x86 assembly registers — Why do they work the way they do?
jc3wubiy5#
较老的处理器有累加器命名为A,B等(按字母顺序排列)。当16位和32位累加器被开发出来时,工程师们添加了一个X(扩展)。所以这一切都是关于历史的,因为C语言被这样称呼是因为它是从B语言开发出来的(贝尔实验室)。
这个惯例只是内部的,为了跟上他们已经熟悉的名字。
knsnq2tg6#
下面简要说明每个x86通用寄存器的含义: