调用过程中
寄存器 用处 要不要保护
%rax 临时寄存器;参数可变时传递关于 SSE 寄存器 不要
用量的信息;第 1 个返回值寄存器
%rbx 被调者保存的寄存器;或用作基指针 要
%rcx 用来给函数传递第 4 个整数参数 不要
%rdx 用来给函数传递第 3 个整数参数 不要
%rsp 栈指针 要
%rbp 被调者保存的寄存器;或用作帧指针 要
%rsi 用来给函数传递第 2 个参数 不要
%rdi 用来给函数传递第 1 个参数 不要
%r8 用来给函数传递第 5 个参数 不要
%r9 用来给函数传递第 6 个参数 不要
%r10 临时寄存器,用来传递函数的静态链指针 不要
%r11 临时寄存器 不要
%r12-r15 被调者保存的寄存器 要
%xmm0–%xmm1 用来传递和返回浮点参数 不要
%xmm2–%xmm7 用来传递浮点参数 不要
%xmm8–%xmm15 临时寄存器 不要
%mmx0–%mmx7 临时寄存器 不要
%st0 临时寄存器;用来返回 long double 参数 不要
%st1–%st7 被调者保存的寄存器 不要
%fs 留给系统用(作线程特定数据寄存器) 不要