在 Linux 世界中,通常寄存器名称命名如下(我的理解):
| 序号 | 寄存器名称 | 注释 | 
|---|---|---|
| 0 | %rax | 累加器 通畅存储函数调用的返回结果,也被用再idiv(除法)和imul(乘法)命令中。 | 
| 1 | %rbx | 基址寄存器 base register 用于访问内存的基址 属于通用寄存器 | 
| 2 | %rcx | 计数寄存器 | 
| 3 | %rdx | 数据寄存器 属于通用寄存器 | 
| 4 | %rsi | 源变址寄存器 | 
| 5 | %rdi | 目标变址寄存器 | 
| 6 | %rbp | 基址寄存器 一般用来存放栈底地址, stack frame的开始地址 | 
| 7 | %rsp | 栈顶指针寄存器 标识当前栈帧的起始位置 | 
| 8 | %r8 | 属于通用寄存器 | 
| 9 | %r9 | 属于通用寄存器 | 
| 10 | %r10 | 属于通用寄存器 | 
| 11 | %r11 | 属于通用寄存器 | 
| 12 | %r12 | 属于通用寄存器 | 
| 13 | %r13 | 属于通用寄存器 | 
| 14 | %r14 | 属于通用寄存器 | 
| 15 | %r15 | 属于通用寄存器 | 
%rdi %rsi %rdx %rcx %r8 %r9
当形参数量<7时,参数从左到右放入寄存器:rdi,rsi,rdx,rcx,r8,r9;
当形参数量>=7时,前6个与上面一样,但后面的顺序依次为”右向左”放入栈中,即和32位汇编一样;
 我的书签
 我的书签
                                 添加书签
 添加书签 移除书签
 移除书签