Wat*_* v2 13 64-bit x86 assembly x86-64 cpu-registers
32位寄存器名称以E开头,64位寄存器以R开头.E和R代表什么?是否有理由选择这些字母?
此外,在64位寄存器中,我们也可以在任何低级调试器(如Windbg)中看到,最右边的位仍然用与64位寄存器相同的名称引用,除了名称以E.例如,64位系统中RAX寄存器的最右边32位称为EAX.
那么,E和R代表什么?而且,为什么后缀X用于注册?
Cod*_*ray 23
R只是代表" r egister".的AMD64 ISA扩展加入额外8个通用寄存器,命名为R8通过R15.原始8个寄存器的64位扩展版本R添加了一个前缀用于对称.
E代表" e xtended"或" e nhanced".(维基百科称" e xtended".)它们是16位寄存器的"扩展"版本,因为它们总共提供16位额外的32位.
X也适用于"e x趋势 " - 也许它暗示16,就像他的x adecimal.*该X-suffixed寄存器是8位寄存器的16位扩展版本.对于8位寄存器,L后缀表示"低",H后缀表示"高".
因此,以一个特定的寄存器为例,你有8位AL和AH寄存器,它们是16位AX寄存器的低字节和高字节,它是32位EAX寄存器的低字,也就是低电平的双字节.- 64位RAX寄存器的字.
| 63 - 32 | 31 - 16 | 15 - 8 | 7 - 0 |
======================================
. . | AH | AL |
. . | AX |
. | EAX |
| RAX |
======================================
| 63 - 32 | 31 - 16 | 15 - 8 | 7 - 0 |
Run Code Online (Sandbox Code Playgroud)
__
*X用于8080上的助记符(例如LXI和DCX)中,用于将一对其他独立的8位寄存器视为16位整数的指令,类似于AX表示该AH:AL对的方式.因此,另一种可能的解释是X意味着对,并且在后续处理器(包括8086,即8080的完整16位扩展)上命名高:低对时继续使用这种用法.
| 归档时间: |
|
| 查看次数: |
3294 次 |
| 最近记录: |