我正在尝试将四个以上的参数从我的 C++ 代码传递给程序集。
C++ 函数如下所示:
static float armFunction(float, float, float, float, float);
我可以毫无问题地从寄存器 r0-r3 中检索前四个参数。
我希望我的第五个浮点参数在堆栈上,我应该能够使用堆栈指针 sp 访问它,例如我尝试在 r4 中加载我的第五个参数,例如:
ldr r4, [sp]
甚至:
ldr r4, [sp, #-0x4]
但这不起作用,并且汇编代码立即退出,并带有一些堆栈损坏输出。
我的完整汇编代码如下所示:http: //pastie.org/3933875