1. C语言里面插入汇编
void my_strcp(char *src, char *desc)
{
char ch;
__asm{
loop:
ldrb ch, [src], #1
strb ch, [desc], #1
cmp ch, #0
bne loop
}
}
int main()
{
char *a = "hello world";
char b[12] ;
my_strcp(a, b);
}
2. C 语言调用汇编函数
汇编代码 test.s
AREA my_strcp,CODE,READONLY
export my_strcp ; 使用export导出汇编函数 给其他人调用
loop
ldrb r4, [r0], #1 ; 默认R0-R3进行参数的传递
cmp r4, #0
beq over
strb r4, [r1], #1
b loop
over
END
C 语言代码 test.c
extern void my_strcp(char *src, char *desc); //函数声明
int main()
{
char *a = "hello world";
char b[12] ;
my_strcp(a, b);
}
3. 汇编调用C函数
C函数 test.c
int cFunAdd(int a, int b, int c)
{
return a+b+c ;
}
extern void test1(void);
int main()
{
Test1();
}
汇编 test.s