汇编语言的STM32工程初体验

一、创建工程

打开keil软件,选择新建工程
在这里插入图片描述
新建成功后弹出下面窗口,选择STM32芯片
在这里插入图片描述
点击OK后弹出下面窗口,将core和startup勾选,点击OK
在这里插入图片描述

二、创建文件

右键选择文件,选择添加文件
在这里插入图片描述
然后弹出下面窗口,选择arm file,点击add
在这里插入图片描述

三、工程编译

右键选择文件,点击下面选项
在这里插入图片描述
根据自己的连接线选择,我是ST-LIINK
在这里插入图片描述
点击右边的setting,完成下面配置
在这里插入图片描述
点击编译后点击仿真测试按钮
在这里插入图片描述

四、结果展示

仿真测试开始的结果如下,可以看到R5、R6、R7、R8的值都为0
在这里插入图片描述
点击下面的按钮,可以看到R5、R6、R7、R8都变为了对应的值
在这里插入图片描述

五、观察hex文件

在keil中勾选下面选项
在这里插入图片描述
以记事本打开hex文件查看
在这里插入图片描述
可以看到前8个字节内容为
020000040800F2

参考博客:
https://blog.csdn.net/a1037488611/article/details/43340055

一般hex文件格式为:
在这里插入图片描述
我们可以将上面内容划分为五个部分
02 0000 04 0800 F2

LL 是数据长度域,它代表记录当中数据字节 (dd)的数量;
aaaa是地址域,它代表记录当中数据的起始地址;
TT是代表HEX记录类型的域,它可能是以下数据当中的一 个:
00 – 数据 记录(Data Record)
01 – 文件结束 记录(End of FileRecord)
02 – 扩展段地址 记录(ExtendedSegment Address Record)
03– 开始段地址 记录(Start Segment Address Record)
04 – 扩展线性地址 记录(Extended Linear Address Record)
05 – 开始线性地址 记录(Extended Segment Address Record)
dd是数据域,它代表一个字节的数据一个记录可以有许多数 据字节.记录当中数据字节的数量必须和数据长度域(ll)中指定的数字相符.
cc是校验和域,它表示这个记录的校验和校验和的计算是通 过将记录当中所有十六进制编码数字对的值相加,以256为 模进行以下补足.

可以发现上面的记事本中内容只有第一行的TT为04,其他的为00,所以第一行是记录地址的,其它行是记录数据的,借此还可以猜测hex文件的最后一行的TT为01代表文件结束
通过查看可以看到猜测是对的
在这里插入图片描述

总结

经过这次建立汇编语言的STM32工程,让我对汇编语言有了初步的了解,相信今后多加练习,能够更熟练的运用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值