函数如何确定参数的数量

时间:2014-07-22 15:36:40

标签: assembly machine-code

给出具有3个参数的函数:

Foo(int a, int b, int c)

在汇编中,调用者将3个值写入寄存器rdi,rsi和rdx。 但是,Function Foo如何知道rdx是他论证的最后一个寄存器?

1 个答案:

答案 0 :(得分:3)

根据一些调用约定,已经编写了3个参数。它不知道也无法检查它实际得到了多少。无论调用者是否填写了适当的参数,它都会愉快地使用那些寄存器中发生的任何事情。调用者和被调用者应该就参数和调用约定达成一致。