基于stm32f103的汇编语言工程仿真及分析
作者:互联网
目录
一、创建新项目
打开keil,点击project->New μVision Project创建一个新项目
命名文件后保存,
选择STMicroelectronics->STM32F1 Series->STM32F103->STM32F103C8(其他型号同理)
勾选CMSIS中的CORE和Device中的Starup,其中CMSIS中的CORE为Cortex-M处理器核和外设定义应用程序接口API(Application Programming Interface),也包括一致的系统启动代码。Device中的Starup则是包含了启动文件。
右键点击Source Group 1,选择Add New Item to 'Source Group 1'
选择Asm File(.s),创建一个汇编语言文件,输入文件名,点击add
创建成功后如下图所示
二、编写汇编语言、编译
首先点击这个图标
首先在output中勾选create HEX File,只有勾选了这个选项之后才能生成.HEX文件
然后在Debug中选择Use Simulator使用仿真器进行仿真实验
完成上述操作后,在代码框输入以下代码
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
点击rebuild进行编译
编译成功,如下图
三、调试分析
首先在option for target中修改某些参数
修改debug中Dialog和右侧的Paramete,改为下图所示
调试运行,得到以下结果
运行结果寄存器 R5
,R6
,R7
,R8
的值和程序设置一致
四、总结
在过程中遇到不少问题,例如寄存器的数据与程序不一致,是因为设置出现问题而导致的,keil环境在某些情况下自动配置还是有一些问题,要注意检查
五、参考文献
https://blog.csdn.net/ChenGuiGan/article/details/80223687
标签:stm32f103,仿真,func01,汇编语言,MOV,LDR,点击,LR 来源: https://blog.csdn.net/pink_lemon/article/details/120522169