一.Keil下C语言调用汇编程序
1.创建main.c
2.创建Func.s
3.创建成功 main.c
#include<stdio.h>
extern void Init_1(void);
int main(){
Init_1();
return 0;
}
Func.s
AREA My_Function,CODE,READONLY
EXPORT Init_1
Init_1
MOV R1,#666
MOV R2,#888
LOOP
CMP R1,#10
BHS LOOP_END
ADD R2,#1
ADD R1,#1
B LOOP
LOOP_END
NOP
END
二、C语言调用
(一)无参数调用
(二)有参数调用
main.c
# include<stdio.h>
extern int Init_1(int x);
int main(){
int xx = Init_1(10);
printf("%d", xx);
return 0;
}
Func.s
AREA MY_Function,CODE,READONLY
EXPORT Init_1
Init_1
ADD R0,#100
MOV PC,LR
LOOP
CMP R1,#10
BHS LOOP_END
ADD R2,#1
ADD R1,#1
B LOOP
LOOP_END
NOP
END
三、汇编语言调用C函数
main.c
# include<stdio.h>
extern void Init_1(void);
int get5(void);
int main(){
printf("Begin...\n");
Init_1();
return 0;
}
int get5(){
return 5;
}
Func.s
AREA MY_Function,CODE,READONLY
EXPORT Init_1
IMPORT get5
Init_1
MOV R1,#0
MOV R2,#0
LOOP
CMP R1,#10
BHS LOOP_END
ADD R2,#1
ADD R1,#1
BL get5
B LOOP
LOOP_END
NOP
END
参考: