E和R前缀在Intel 32位和64位寄存器的名称中代表什么? [英] What do the E and R prefixes stand for in the names of Intel 32-bit and 64-bit registers?
问题描述
32位寄存器名称以E开头,而64位寄存器名称以R开头。E和R代表什么?
The 32-bit register names start with an E and the 64-bit ones start with an R. What do the E and R stand for? Is there a reason for choosing these alphabets?
此外,在64位寄存器中,我们也可以在任何低级调试器(如Windbg)中看到正确的-除名称以E开头外,大多数位仍使用与64位寄存器相同的名称来引用。在64位系统中,RAX寄存器最右边的32位称为EAX。
Also, in 64-bit registers, too, we can see in any low-level debugger such as Windbg that the right-most bits are still referred to by the same name as that of the 64-bit register except the name starts with an E. For e.g. the right-most 32 bits of the RAX register in a 64-bit system is referred to as EAX.
那么,E和R代表什么吗?还有,为什么要使用后缀X进行注册?
So, do the E and R stand for something? And also, why the suffix X for register?
推荐答案
-
R
只是代表 r egister 。 AMD64 ISA扩展增加了8个其他通用寄存器,分别通过R15
命名为R8
。原始8个寄存器的64位扩展版本在其上添加了R
前缀对称性。R
just stands for "register". The AMD64 ISA extension added 8 additional general-purpose registers, namedR8
throughR15
. The 64-bit extended versions of the original 8 registers had anR
prefix added to them for symmetry.E
代表 e xtended或 e 增强。 (维基百科说 e xtended 。)它们是16个版本的扩展版本。位寄存器,因为它们提供了16个附加位,总共32位。E
stands for "extended" or "enhanced". (Wikipedia says "extended".) They are the "extended" versions of the 16-bit registers, in that they offer 16 additional bits for 32 bits total.X
也是表示 e x 或 16,如he x 十进制。 *X
后缀的寄存器是8位寄存器的16位扩展版本。对于8位寄存器,后缀L
表示低,后缀H
表示高。 / p>
X
is also for "extended"—or perhaps it implies 16 as in hexadecimal.* TheX
-suffixed registers are the 16-bit extended versions of the 8-bit registers. For 8-bit registers, theL
suffix means "low", and theH
suffix means "high".因此,以一个特定的寄存器为例,您具有8位的
AL
和AH
寄存器,它们是16位AX
寄存器的低字节和高字节,它是32位EAX
寄存器的低位字,它是64位RAX $ c的低位双字$ c>注册。
Therefore, taking one particular register as an example, you have the 8-bit
AL
andAH
registers, which are the low and high bytes of the 16-bitAX
register, which is the low word of the 32-bitEAX
register, which is the low double-word of the 64-bitRAX
register.| 63 - 32 | 31 - 16 | 15 - 8 | 7 - 0 | ====================================== . . | AH | AL | . . | AX | . | EAX | | RAX | ====================================== | 63 - 32 | 31 - 16 | 15 - 8 | 7 - 0 |
__
* X (例如LXI
和<$在8080上使用c $ c> DCX 来指令将一对其他分开的8位寄存器视为16位整数,类似于AX
表示AH的方式:AL
对。因此,另一种可能的解释是X
表示 pair ,并且在后续处理器(包括8086)上命名high:low对时,这种用法仍在继续,它是8080的完整16位扩展。__
*X
was used in the mnemonics (such asLXI
andDCX
) on the 8080 for instructions that treated a pair of otherwise-separate 8-bit registers as a 16-bit integer, similar to howAX
represents theAH:AL
pair. Thus, another possible interpretation is thatX
means pair, and this usage was continued when naming the high:low pairs on subsequent processors, including the 8086, which was a full 16-bit extension of the 8080.这篇关于E和R前缀在Intel 32位和64位寄存器的名称中代表什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!