据我所知,函数通常采用像
这样的参数push param1
push param2
push param3
call func
但我最近遇到过这样的事情
mov rdi,param1
mov rsi,param2
mov rax,param3
call func
第二个是令人困惑的,因为我不知道func将采用多少参数,因此我无法从参数传导中梳理出自然的mov指令。上帝也禁止,如果两种方法都用于传递参数,我该怎么办?
有没有一种简单的方法可以确定使用哪种约定?