如何在MIPS中处理五个或更多的参数?

时间:2011-08-04 15:34:24

标签: assembly arguments mips

我是汇编语言的新手。我正在阅读关于 MIPS 架构的内容,而且我坚持使用一个概念。

  

MIPS有四个参数寄存器$ a0,$ a1,$ a2和$ a3。这些特别的   目的寄存器用于保存从中传递的参数   调用程序到被调用者程序。

如果函数有超过4个参数会发生什么情况,因为只有四个寄存器来保存参数? 提前谢谢。

1 个答案:

答案 0 :(得分:5)

它们在堆栈中传递,引用Wikipedia

  

MIPS定义的O32 ABI将前四个参数传递给寄存器$ a0- $ a3中的函数;后续参数在堆栈上传递。返回值(或指向它的指针)存储在寄存器$ v0中;第二个返回值可以存储在$ v1中。当有四个以上的参数时,64位ABI允许寄存器中的更多参数用于更有效的函数调用。还有N32 ABI,它还允许在寄存器中有更多的参数。

更多herehere(PDF警告)。