ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

基于stm32f103的汇编语言工程仿真及分析

2021-09-28 13:03:05  阅读:233  来源: 互联网

标签:stm32f103 仿真 func01 汇编语言 MOV LDR 点击 LR


目录

一、创建新项目

 二、编写汇编语言、编译 

三、调试分析

四、总结

五、参考文献


一、创建新项目

打开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,改为下图所示

 调试运行,得到以下结果

 运行结果寄存器 R5R6R7R8 的值和程序设置一致

四、总结

在过程中遇到不少问题,例如寄存器的数据与程序不一致,是因为设置出现问题而导致的,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,仿真,func01,汇编语言,MOV,LDR,点击,LR
来源: https://blog.csdn.net/pink_lemon/article/details/120522169

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有