一、 C语言调用汇编语言
1、创建main.c和Fun.s文件 2、添加代码 main.c:
#include<stdio.h>
extern void Init_1(void);
int main(){
Init_1 ();
return 0;
}
设置断点:
Fun.s:
AREA My_Function,CODE,READONLY
ESPORT Init_1
Init_1
MOV R1,#666
MOV R1,#888
Loop
CMP R1,#10
BHS LOOP_END
ADD R2,#1
ADD R1,#1
B LOOP
LOOP_END
NOP
END
设置断点: 3、进行调试
二、修改main函数
1、修改代码 main:
# include<stdio.h>
extern int Init_1(int x);
int main(){
int x = Init_1(10);
printf("%d", x);
return 0;
}
Fun:
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:
#include<stdio.h>
extern void Init_1(void);
int C8(void);
int main(){
printf("Running...\n");
Init_1 ();
return 0;
}
int C8(){
return 8;
}
Fun:
AREA My_Function,CODE ,READONLY
EXPORT Init_1
IMPORT C8
Init_1
MOV R1,#0
MOV R2,#0
LOOP
CMP R1,#10
BHS LOOP_END
ADD R2,#1
ADD R1,#1
BL C8
B LOOP
LOOP_END
NOP
END
设置断点:
进行编译:
|