ARM汇编程序入门实践

keil的安装:

下载:

网址:
链接: [https://pan.baidu.com/s/1gT2mUr8Dt3tImgKjJL4AyA

](https://www.csdn.net/)提取码:1234

安装:

点击exe文件,然后点击next
在这里插入图片描述
然后勾选I agree ,再点击next
在这里插入图片描述
然后选择路径,点击next
在这里插入图片描述
然后选择注册信息,内容随意
在这里插入图片描述
然后点击安装在这里插入图片描述
最后点击finish
在这里插入图片描述

安装STM包

点击文件夹中的Keil.STM32F1xx_DFP.2.1.0
在这里插入图片描述
点击next,然后点击finish。
安装就完成了。

stm32程序——闪烁LED

创建Project

点击Project->New μVision Project
在这里插入图片描述
输入名称LED
在这里插入图片描述
点击保存。
选择STM32芯片
在这里插入图片描述
然后点击OK,然后勾选图中的内容
在这里插入图片描述
点击OK
然后右键Source->Add a NEW ITEM
在这里插入图片描述
然后点击Add。

然后输入以下代码:

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

配置环境

点击Options for Target
在这里插入图片描述
打开Debug,

在这里插入图片描述
并且,修改设置点击Edit->Configuration
在这里插入图片描述
修改为图中样子
在这里插入图片描述
点击OK
然后编译,调节
在这里插入图片描述
然后,界面会变成这样

在这里插入图片描述
调试效果:

在这里插入图片描述
在这里插入图片描述

分析生成的HEX文件

文件大小:
在这里插入图片描述

生成HEX文件:

打开Options for Target,打开output,勾选Create HEX File

在这里插入图片描述

在这里插入图片描述
然后点击ok,再打开文件夹,找到hex文件。
在这里插入图片描述

分析

用文本打开。

:020000040800F2
:1000000000060020ED000008F5000008F7000008D9
:10001000F9000008FB000008FD00000800000000D7
:10002000000000000000000000000000FF000008C9
:10003000010100080000000003010008050100089C
:100040000701000807010008070100080701000870
:100050000701000807010008070100080701000860
:100060000701000807010008070100080701000850
:100070000701000807010008070100080701000840
:100080000701000807010008070100080701000830
:100090000701000807010008070100080701000820
:1000A0000701000807010008070100080701000810
:1000B0000701000807010008070100080701000800
:1000C00007010008070100080701000807010008F0
:1000D00007010008070100080701000807010008E0
:1000E00007010008070100080701000809488047C8
:1000F00009480047FEE7FEE7FEE7FEE7FEE7FEE70A
:10010000FEE7FEE7FEE7FEE704480549054A064B21
:1001100070470000FD0100085502000800000020A3
:1001200000060020000200200002002070477047F7
:100130007047000080B500F001F880BD82B041F248
:1001400004000021C4F202000191009150F8041C47
:1001500041F4803140F8041C50F8041C01F40031D3
:100160000091019901310191009919B90199B1F5F5
:10017000A06FF1D150F8041C890354BF0021012164
:1001800000910099012936D142F20001C4F2020126
:100190000A6842F010020A600A6822F003020A604C
:1001A0000A6842F002020A600168016001680160A9
:1001B000016841F480610160016821F47C110160F3
:1001C000016841F4E811016050F8041C41F08071AD
:1001D00040F8041C50F8041C8901FBD5016821F08B
:1001E00003010160016841F002010160016801F052
:1001F0000C010829FAD102B07047000080B541F225
:100200000000C4F202000168002241F00101016017
:100210004168CFF6FF021140416001684FF6FF725E
:10022000CFF6F66211400160016821F4802101607F
:10023000416821F4FE0141604FF41F018160FFF726
:1002400079FF4EF60850CEF200004FF000610160D9
:1002500080BD00004FF00A004FF00B014FF00C0280
:100260004FF00D0300F009F800F00AF800F00BF869
:10027000DFF81CE0DFF81CF0FEE74FF005057047E3
:100280004FF0060670474FF007074FF00808704719
:080290007B0200088702000850
:040000050800025598
:00000001FF

该文件为16进制的一串字符。hex文件的第一排字符称之为扩展线性地址记录,也称为32位地址记录或HEX386记录。
而其中的第一行为: 020000040800F2
其实际表达为0x02 0x00 0x00 0x04 0x08 0x00 0xf2
第一个字节 0x02表示本行数据的长度;

第二、三字节 0x00 0x00表示本行数据的起始地址;

第四字节 0x04表示数据类型,数据类型有:0x00、0x01、0x02、0x03、0x04、0x05

‘00’ Data Rrecord:用来记录数据,HEX文件的大部分记录都是数据记录
‘01’ End of File Record: 用来标识文件结束,放在文件的最后,标识HEX文件的结尾

‘02’ Extended Segment Address Record: 用来标识扩展段地址的记录

‘03’ Start Segment Address Record:开始段地址记录

‘04’ Extended Linear Address Record: 用来标识扩展线性地址的记录

‘05’ Start Linear Address Record:开始线性地址记录

然后是数据,0x08 0x00

最后一个字节 0xf2为校验和。

总结:

通过本实验,对keil的安装使用有了更深的了解,并且了解HEX文件内容和知道了使用仿真器模式调试时要根据选择的设备更改参数,通过对汇编的初步了解,发现对应汇编理解还不够,还太会使用汇编进行编程。给一段简单的汇编代码,基本能够读懂大部分语句的含义,但是,自己写还不是太会,还需要进一步学习。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值