根据System V X86-64 ABI,应用程序中的函数调用使用以下寄存器序列来传递整数参数:
rdi, rsi, rdx, rcx, r8, r9
Run Code Online (Sandbox Code Playgroud)
但是系统调用参数(除了系统调用号)在另一个寄存器序列中传递:
rdi, rsi, rdx, r10, r8, r9
Run Code Online (Sandbox Code Playgroud)
为什么内核使用r10而不是rcx第四个参数?它是否以某种方式与rcx未被保留的事实有关r10?