ARM汇编基础:创建汇编语言的STM32工程

目录

一、新建工程

二、配置环境 

1.选择设备

2.选择运行环境

 3.添加源文件

 三、编译代码

 四、调试

1.仿真器设置

 2.调试

 3.HEX文件


一、新建工程

1.打开Keil5,初始界面如下

2. 点击Project下的New uVision Project,创建新的工程

 3.在弹出的窗口设置工程的路径和名称,这里用的名称是TEST,之后点击保存

二、配置环境 

1.选择设备

在弹出的窗口选择STM32F103ZE,点击OK

2.选择运行环境

在CMSIS下勾选CORE,在Device下勾选Startup,点击OK

 3.添加源文件

鼠标右键单击Source Group 1,选择Add New Item to Group 'Source Group 1'

在弹出的窗口选择Asm File(.s),创建汇编文件,设置源文件名称TEST,点击Add

建立完成后如下所示

 三、编译代码

1.源码

 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

2.输入代码

 3.点击Rebuild,进行编译

 四、调试

1.仿真器设置

点击Options for Target,在Output下勾选Create HEX File

 在Debug下勾选Use Simulator

 2.调试

点击Start/Stop Debug Session,进行调试

调试完成,结果符合预期,寄存器R5,R6,R7,R8的值和程序设置一致, 

 

 

 3.HEX文件

在工程路径下找到生成的.hex文件,用记事本打开

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32是一系列基于ARM Cortex-M内核的微控制器,可以使用汇编语言进行编程。以下是一些常用的STM32汇编语言指令: 1. MOV:将一个值或寄存器的数据移动到另一个寄存器。 例如:MOV r0, #0x01 ;将值0x01移动到R0寄存器。 2. ADD:将两个寄存器的值相加,并将结果存储在目标寄存器。 例如:ADD r0, r1, r2 ;将R1寄存器和R2寄存器的值相加,并将结果存储在R0寄存器。 3. SUB:将两个寄存器的值相减,并将结果存储在目标寄存器。 例如:SUB r0, r1, r2 ;将R1寄存器的值减去R2寄存器的值,并将结果存储在R0寄存器。 4. CMP:比较两个值,并设置标志位以指示它们的关系。 例如:CMP r1, #0x00 ;将R1寄存器的值与0x00进行比较,并设置标志位。 5. BEQ:如果标志位指示上一次比较的结果是相等的,则跳转到指定的标签。 例如:BEQ my_label ;如果标志位指示上一次比较的结果是相等的,则跳转到my_label标签。 6. BNE:如果标志位指示上一次比较的结果是不相等的,则跳转到指定的标签。 例如:BNE my_label ;如果标志位指示上一次比较的结果是不相等的,则跳转到my_label标签。 7. LDR:将内存的值加载到寄存器。 例如:LDR r0, [r1] ;将R1寄存器存储的地址处的值加载到R0寄存器。 8. STR:将寄存器的值存储到内存。 例如:STR r0, [r1] ;将R0寄存器的值存储到R1寄存器存储的地址处。 以上是一些常用的STM32汇编语言指令,你可以根据具体的需求和文档来进行编程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值