我经常忘记系统调用中每个参数需要使用的寄存器,每次我忘记时我都会访问这个问题。
x86_64 用户空间函数调用的整数/指针参数的正确顺序是: %rdi、%rsi、%rdx、%rcx和%r8。%r9(可变参数函数采用 AL = FP 参数的数量,最多 8)
%rdi
%rsi
%rdx
%rcx
%r8
%r9
或者对于系统调用,%rax(系统调用调用号)和相同的参数,除了%r10代替%rcx.
%rax
%r10
记住这些寄存器而不是每次都用谷歌搜索这个问题的最佳方法是什么?
assembly x86-64 abi cpu-registers calling-convention
abi ×1
assembly ×1
calling-convention ×1
cpu-registers ×1
x86-64 ×1