相关疑难解决方法(0)

什么寄存器保存在ARM C调用约定中?

自从我上次编写手臂汇编程序以来已经有一段时间了,我对细节有点生疏.如果我从arm调用C函数,我只需要担心保存r0-r3和lr,对吧?

如果C函数使用任何其他寄存器,它是否负责保存堆栈中的那些并恢复它们?换句话说,编译器会生成代码来为C函数执行此操作.

例如,如果我在汇编程序函数中使用r10,我不必将其值放在堆栈或内存中,并在C调用后弹出/恢复它,是吗?

这是针对arm-eabi-gcc 4.3.0.

c assembly arm calling-convention function-call

51
推荐指数
5
解决办法
6万
查看次数

标签 统计

arm ×1

assembly ×1

c ×1

calling-convention ×1

function-call ×1