目录
1、打开keil5
2、新建工程
?3、配置环境
4、源代码
5、仿真器设置
6、总结
7、参考文献
1、打开keil5
![](https://img-blog.csdnimg.cn/20210925141549911.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBATGF1bCBLZW4tWWk=,size_15,color_FFFFFF,t_70,g_se,x_16)
2、新建工程
![](https://img-blog.csdnimg.cn/2021092513590239.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBATGF1bCBLZW4tWWk=,size_20,color_FFFFFF,t_70,g_se,x_16)
2.1? 创建一个名为test1的新工程
3、配置环境
?![](https://img-blog.csdnimg.cn/20210925135755200.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBATGF1bCBLZW4tWWk=,size_20,color_FFFFFF,t_70,g_se,x_16)
3.1? 本文采用STM32F103ZE?
![](https://img-blog.csdnimg.cn/20210925140346310.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBATGF1bCBLZW4tWWk=,size_20,color_FFFFFF,t_70,g_se,x_16)
3.2??CMSIS 下选择CORE ;
3.3??Device 下Startup ,其中包含了启动文件;
?![](https://img-blog.csdnimg.cn/20210925135650972.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBATGF1bCBLZW4tWWk=,size_20,color_FFFFFF,t_70,g_se,x_16)
?3.4? 为工程添加源文件.s文件,取名为test1
![](https://img-blog.csdnimg.cn/20210925135633148.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBATGF1bCBLZW4tWWk=,size_20,color_FFFFFF,t_70,g_se,x_16)
![](https://img-blog.csdnimg.cn/2021092514014723.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBATGF1bCBLZW4tWWk=,size_20,color_FFFFFF,t_70,g_se,x_16)
?3.5? 工程设置可由魔法棒进入,也可以由快捷键Alt+F7
4、源代码
AREA MYDATA, DATA
AREA MYCODE, CODE
ENTRY
EXPORT __main
__main
MOV R0, #10
MOV R1, #11
MOV R2, #12
MOV R3, #13
;LDR R0, =func01
BL func01
;LDR R1, =func02
BL func02
BL func03
LDR LR, =func01
LDR PC, =func03
B .
func01
MOV R5, #05
BX LR
func02
MOV R6, #06
BX LR
func03
MOV R7, #07
MOV R8, #08
BX LR
错误点:汇编语言不能顶格写必须要有空格,否则会编译出错。
5、仿真器设置
![](https://img-blog.csdnimg.cn/20210925135045709.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBATGF1bCBLZW4tWWk=,size_20,color_FFFFFF,t_70,g_se,x_16)
?5.1? 在“Debug”选项卡中选择“Use?Simulator”,表示使用软件仿真;选择“Run?to?main()”则表示跳过汇编代码,直接跳转到main函数开始仿真。不勾选的话无法进行仿真。
![](https://img-blog.csdnimg.cn/20210925135031460.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBATGF1bCBLZW4tWWk=,size_20,color_FFFFFF,t_70,g_se,x_16)
?5.2? 创建.hex文件。
????????![](https://img-blog.csdnimg.cn/20210925134900394.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBATGF1bCBLZW4tWWk=,size_20,color_FFFFFF,t_70,g_se,x_16)
?5.3? 进行汇编语言代码编译,可以看出该软件占用内存大小。
?5.4? 对汇编代码进行调试,观察相应变量的值。
6、总结
? ? 第一次使用汇编语言只能说非常的陌生,熟悉了对keil5的安装与stm32包的下载,掌握了其中仿真器的设置。在未接硬件下可跳过驱动设置直接进行对软件的仿真。还需在此课上更花时间与心思。
7、参考文献
???????? ? ? ? ? ? ? ? ? ??? ARM汇编基础之基于MDK创建纯汇编语言的STM32工程_GREYWALL-CSDN博客
? ? ? ? ? ? ? ? ? ? ??STM32基于汇编方式创建工程文件和闪烁LED灯_xwmrcj的博客-CSDN博客
? ? ? ? ? ? ? 基于MDK创建纯汇编语言的STM32工程——汇编实现LED闪烁_Harriet的博客-CSDN博客
|