我是 ARMv5 汇编编码的新手。
假设我希望使用 CALL_VM_FUNCTION 从我的汇编代码中调用一个 C 函数。我的 C 函数使用三个参数。在调用 C 函数之前,我将参数保存在哪些寄存器中?为此是否有特定的约定?
除此之外,我想确保在 C 函数调用完成之前和之后,寄存器保留这些值。push 和 pop 指令会完全解决这个问题吗?
例如:
PUSH {a1-a4} /*values held in registers a1-a4 are saved*/
/*instruction to pass arguments in the registers for C function call*/
CALL_VM_FUNCTION(C-function)
POP {a1-a4}
提前致谢!:-)