PRESERVE8 EXPORT fun_asm ; 声明汇编函数fun_asm可以被外部调用 AREA F_ASM, CODE, READONLY IMPORT fun_c ; 导入要从C程序中调用的fun_c函数 fun_asm STR LR, [SP, #-4]! ; 因要调用另一个子程序 fun_c,保存LR中的返回地址 MOV R0, #2 ; 将第1个参数a需要的值,存入R0 = n = 2 ADD R1, R0, R0 ; 将第2个参数b需要的值,存入R1 = 2n = 4 ADD R2, R1, R0 ; 将第3个参数c需要的值,存入R2 = 3n = 6 ADD R3, R1, R2 ; STR R3, [SP, #-4]! ; 将第5个参数e需要的值,存入R3 = 5n = 10,并且入栈 ADD R3, R1, R1 ; 将第4个参数d需要的值,存入R3 = 4n = 8 BL fun_c ; 返回后,R0中就是5个数之和 ADD SP, SP, #4 LDR PC, [SP], #4 END