int main(void){
printf("Hello World");
return 0;
}
0 如何作为程序集级别的返回值传递?这项工作是否有专用的CPU寄存器?
更新
这是关于pdf中传递/返回数据的2个表,但似乎没有关于如何确定API的调用约定以及哪个寄存器用于存储返回地址的确切信息:
答案 0 :(得分:11)
这取决于架构。仅举几个例子,在x86上,EAX寄存器通常用于返回值。在x86-64上,它是RAX。在SPARC上,它通常会显示在%o0中。
答案 1 :(得分:4)
这是application binary interface。
的一部分这些天,返回值和函数参数通常在寄存器中传递,因为这是最有效的选项。只有当它对于可用的寄存器来说太大时才使用堆栈。