基于MDK创建纯汇编语言的STM32工程
1、创建工程
点击如图所示位置的new uvision project
输入文件名,点击保存
2、配置环境
选择STM32F103C8,点击OK
选择运行环境
添加源文件
鼠标右击Source Group 如图选择
添加源代码
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
3、代码测试
仿真器设置
按照如下图更改配置
编译调试
观察寄存器中的值,与代码设置一致
hex文件分析
hex文件格式
数据类型
:020000040800F2 //文件第一行 02:代表本行有2个字节数据 0000:本行数据的起始地址(偏移地址) 04:扩展线性地址标识,表面后面2个字节数据是后面数据的基地址 注:由于每行标识数据地址的只有2Byte,所以最大只能到64K,为了可以保存高地址的数据,故有了扩展线性地址记录也叫作32位地址记录或HEX386记录.这些记录含数据的高16位,扩展线性地址记录总是有两个数据字节。 0800:是扩展地址 (0x0800 << 16) = 0x08000000后面的数据记录都以这个地址为基地址。 F2: 记录本行校验和 F2=0x100-(0x02+0x04+0x08)
4、总结
本次实验在MDK下利用汇编语言编程实现STM32系统的操作,实验后对汇编语言有 了基本的认识,了解了HEX文件的格式和数字段的意义,了解寄存器的原理,为以后的汇编语言编写做铺垫。
|