基于stm32f103的汇编语言工程仿真及分析
2021/9/28 14:11:17
本文主要是介绍基于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/m0_58414679/article/details/120467462?utm_source=app&app_version=4.15.0&code=app_1562916241&uLinkId=usr1mkqgl919blen
https://blog.csdn.net/ChenGuiGan/article/details/80223687
这篇关于基于stm32f103的汇编语言工程仿真及分析的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-17机器学习资料入门指南
- 2024-12-06如何用OpenShift流水线打造高效的机器学习运营体系(MLOps)
- 2024-12-06基于无监督机器学习算法的预测性维护讲解
- 2024-12-03【机器学习(六)】分类和回归任务-LightGBM算法-Sentosa_DSML社区版
- 2024-12-0210个必须使用的机器学习API,为高级分析助力
- 2024-12-01【机器学习(五)】分类和回归任务-AdaBoost算法-Sentosa_DSML社区版
- 2024-11-28【机器学习(四)】分类和回归任务-梯度提升决策树(GBDT)算法-Sentosa_DSML社区版
- 2024-11-26【机器学习(三)】分类和回归任务-随机森林(Random Forest,RF)算法-Sentosa_DSML社区版
- 2024-11-18机器学习与数据分析的区别
- 2024-10-28机器学习资料入门指南