以下寄存器的表示基于AT&T格式,寄存器均为64位,ABI规范,供随时查阅
| 寄存器 | 作用 |
|---|---|
| %rax | 接收函数的返回值 |
| 寄存器 | 作用 |
|---|---|
| %rsp | 指向运行时栈的栈顶 |
| 寄存器 | 作用 |
|---|---|
| %rbp | 可选用指向运行时栈顶/用作临时寄存器 |
| 寄存器 | 作用 |
|---|---|
| %rdi | 传入实参时保存第一个参数 |
| 寄存器 | 作用 |
|---|---|
| %rsi | 传入实参时保存第二个参数 |
| 寄存器 | 作用 |
|---|---|
| %rdx | 传入实参时保存第三个参数 |
| 寄存器 | 作用 |
|---|---|
| %rcx | 传入实参时保存第四个参数 |
| 寄存器 | 作用 |
|---|---|
| %r8 | 传入实参时保存第五个参数 |
| 寄存器 | 作用 |
|---|---|
| %r9 | 传入实参时保存第六个参数 |
注:参数从第六个至第一个依次压入运行时栈中,如参数大于六个,需用堆栈传递
| 寄存器 | 作用 |
|---|---|
| %rbx | 临时寄存器,调用者可使用,被调用者不可使用 |
| 寄存器 | 作用 |
|---|---|
| %r12 | 临时寄存器,调用者可使用,被调用者不可使用 |
| 寄存器 | 作用 |
|---|---|
| %r13 | 临时寄存器,调用者可使用,被调用者不可使用 |
| 寄存器 | 作用 |
|---|---|
| %r14 | 临时寄存器,调用者可使用,被调用者不可使用 |
| 寄存器 | 作用 |
|---|---|
| %r15 | 临时寄存器,调用者可使用,被调用者不可使用 |
| 寄存器 | 作用 |
|---|---|
| %r10 | 临时寄存器,被调用者可使用,调用者不可使用 |
| 寄存器 | 作用 |
|---|---|
| %r11 | 临时寄存器,被调用者可使用,调用者不可使用 |