1.C语言调用汇编
程序的入口是main,在main里调用汇编的函数。
在C语言中,要extern 一个函数声明即可,然后这个函数在汇编里面实现。
在汇编里面,用EXPORT 把C语言定义的函数名引进来,再开始编写函数名开始的段
#includeextern int sum(int a,int b,int c,int d,int e,intf);intmain(){int result = sum(1,2,3,4,5,6);return 0;
}
汇编代码可新建一个sum.asm文件,在工程中添加这个文件即可。
AREA EXAMPLE,CODE,READONLY
EXPORT sum
ENTRY
sum
ADD R0,R0,R1
ADD R2,R2,R3
ADD R0,R0,R2
LDR R4,[SP]
LDR R5,[SP,#4]
ADD R4,R4,R5
ADD R0,R4,R0
BX LR
END
函数传参:
4个以内的参数,直接存放在R0~R3 这4个寄存器里面。
4个以后的参数放在堆栈里。
如果函数有返回值,那么返回值放在R0里。
Debug看看编译器是怎么处理的,我们就怎样把参数取出来。