目录
一、在C程序中调用汇编程序
新建一个工程,这里我选择的芯片是STM32F103RC,配置如下:
接着创建一个main.c文件
程序代码如下:
#include<stdio.h>
extern void Init_1();
int main(){
Init_1();
return 0;
}
然后再建立一个汇编文件,func.s
程序代码如下:
AREA My_Function,CODE,READONLY
EXPORT Init_1
Init_1
MOV R1,#0
MOV R2,#0
LOOP
CMP R1,#10
BHS LOOP_END
ADD R2,#1
ADD R1,#1
B LOOP
LOOP_END
NOP
END
注:其中EXPORT是将C文件里的相关函数进行调用
MOV R1,#0 MOV R2,#0 是将寄存器R1和R2赋值为0
CMP R1,#10 BHS LOOP_END 是将寄存器R1与10进行比较,如果R1>10,就转到LOOP_END
ADD R2,#1 ADD R1,#1 是将寄存器R2和R1自增1
B LOOP 是代表再次进入循环
END 是表示结束程序
由于本次的实验需要用到仿真调试,所以我要点击魔法棒中的Debug,将其中设置为如下图所示:
配置好后,我们点击debug开始调试
点击单步调试Step,观察寄存器R1和R2里面值的变化
我们可以看到寄存器里的R1和R2从0依次递增到了A(即为10),然后跳出循环,结束程序