一、创建工程
打开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工程,让我对汇编语言有了初步的了解,相信今后多加练习,能够更熟练的运用。