x86-64的所有寄存器都是与机器字长(数据总线位宽)相同,即64位的,x86-64将x86的8个32位通用寄存器扩展为64位(eax、ebx、ecx、edx、eci、edi、ebp、esp),并且增加了8个新的64位寄存器(r8-r15),在命名方式上,也从”exx”变为”rxx”,但仍保留”exx”进行32位操作,下表描述了各寄存器的命名和作用。
描述 |
32位 |
64位 |
通用寄存器组 |
eax |
rax |
ecx |
rcx |
|
edx |
rdx |
|
ebx |
rbx |
|
esp |
rsp |
|
ebp |
rbp |
|
esi |
rsi |
|
edi |
rdi |
|
- |
r8~r15 |
|
浮点寄存器组 |
st0~st7 |
st0~st7 |
XMM寄存器组 |
xmm0~xmm7 |
xmm0~xmm15 |
%esp与%ebp有特殊用途,用来保存指向程序栈中特定位置的指针。
参考文章:
(1)Java Main如何被执行? https://www.cnblogs.com/iceAeterNa/p/4876940.html