我是ARMv5彙編代碼的新手。ARMv5彙編中的PUSH/POP
假設我想使用CALL_VM_FUNCTION從我的彙編代碼中調用C函數。我的C函數使用三個參數。在調用C函數之前,哪些寄存器可以保存參數?這是否有特定的慣例?
除此之外,我想確保在C函數調用完成之前和之後寄存器保留這些值。推送和流行指令是否完全處理這個問題?
如:
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}
提前感謝! :-)
哪個操作系統,哪個版本? C調用約定在不同的軟件平臺上有所不同... – reuben 2012-07-05 10:43:22