汇编程序调用C程序
o 汇编程序的设置要遵循ATPCS 规则,保证程序调用时参数的正确传递.
o 在汇编程序中使用IMPORT 伪指令声明将要调用的C 程序函数.
o 在调用C 程序时,要正确设置入口参数,然后使用BL 调用.
o 汇编调用C 程序的C 函数:
int sum5(int a,lit b, int c,int d,int e)
{
return(a+b+c+d+e); //返回5 个变量的和
}
o 汇编调用C 程序的汇编程序
AREA sample, CODE,READONLY
IMPORT sum5 ;声明外部标号sum5,即C 函数sum5()
CALLSUM
STMFD SP! {LR} ;LR 寄存器放栈
ADD R1,R0,R0 ;设置sum5 函数入口参数,R0 为参数a
ADD R2,R1,R0 ;R1 为参数b,R2 为参数c
ADD R3,R1,R2,
STR R3,[SP,# -4]! ;参数e 要通过堆栈传递
ADD R3,R1,R1 ;R3 为参数d
BL sum5 ;调用sum5(),结果保存在R0
ADD SP,SP#4 ;修正SP 指针
LDMFD SP,PC ;子程序返回
END |