通过栈传递参数,而且是按照参数顺序从右向左依次入栈 old_rbp ret_addr <----- call function fill arg1 arg2
linux user mode:
rdi rsi rdx rcx r8 r9 第七个及之后的按照参数顺序从右向左依次入栈
linux syscall:
rdi rsi rdx r10 r8 r9
Windows x64:
RCX, RDX, R8, R9, stack
x64 calling convention | Microsoft Learn
参数 1 ~ 4 分别保存到 r0 ~ r3 寄存器中, 剩下的参数从右向左依次入栈, 被调用者实现栈平衡, 返回值存放在 r0 中