您的位置:首页 > 编程语言 > C语言/C++

ARM汇编, C语言和汇编混合编程

2014-08-02 20:59 225 查看
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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: