- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验九 arm数据处理指令数据加载存储指令实验
实验九 ARM数据处理指令/数据加载存储指令实验
1、实验目的
掌握基本的数据处理指令使用方法,并能够完成简单的数据处理操作
学会使用条件码标志
掌握基本的单寄存器传送指令和多寄存器传送指令的使用方法
2、实验内容
任务一:ARM运算指令的使用
(1)请按以前实验要求创建项目,并添加exp5_1_1.s源文件,文件内容如下,要求补充完整代码:
(2)然后再通过单步运行程序,观察相关寄存器和存储器相应地址上的值的变化情况,核对程序的准确性。
任务二:利用数据处理指令实现位处理
(1)在项目中删除exp5_1_1.s,并添加exp5_2_1.s源文件,文件内容如下,同样要求补充完整代码,目的在于将0x3FC0的第4-11位用0xDD替换,即变成0x3DD0:
(2)然后阅读代码手工计算每一步的执行结果,并填入表1中(注意只需完成START部分的代码即可)。完成后再通过单步运行程序,观察相关寄存器和存储器相应地址上的值的变化情况,核对和之前你在表上填的值是否一致。执行File-Reload Current Image 命令可以重新加载和运行当前映像文件。
表1 exp5_2_1.s单步运行结果
序号
执行指令
指令执行后的变化情况(用十六进制表示)
寄存器
R1
R2
R3
R15
0
------
0x0
0x0
0x0
0x8000
1
0x3FC0
0x0
0x0
0x8004
2
0x3FC0
0XFF0
0x0
0x8008
3
0x3FC0
0XFF0
0xDD
0x800C
4
0x3000
0Xff0
0xDD
0x8010
5
0x3000
0Xff0
0xdd0
0x8014
6
0x3dd0
0xff0
0xdd0
0x8018
任务三:乘法指令的使用
(1)在项目中删除exp5_2_1.s,并添加exp5_3_1.s源文件,文件内容如下,同样要求补充完整代码:
(2)然后阅读代码手工计算每一步的执行结果,并填入表2中(注意只需完成START部分的代码即可)。完成后再通过单步运行程序,观察相关寄存器和存储器相应地址上的值的变化情况,核对和之前你在表上填的值是否一致。执行File-Reload Current Image 命令可以重新加载和运行当前映像文件。
表2 exp5_3_1.s单步运行结果
序号
执行指令
指令执行后的变化情况(用十六进制表示)
寄存器
R0
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R15
0
-----
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x0
0x8000
1
0x3F
0x8004
2
0x3F
0x3D
0x8008
3
0x3F
0x3D
0Xff000000
0x800c
4
0x3f
0x3d
0xff000000
0x3fc0
0x8010
5
0x3f
0x3d
0xff000000
0x3fc0
0xf03
0x8014
6
0x3f
0x3d
0xff000000
0x3fc0
0xf42
0x8018
7
0x3f
0x3d
0xff000000
0x3fc0
00x801c
8
0x3f
0x3d
0xff000000
0x3fc0
00x3f80
0x8020
9
0x3f
0x3d
0xff000000
0x3fc0
00xffffffc0
0x8024
任务四:ARM单寄存器传送指令的使用
(1)在项目中删除exp5_3_1.s,并添加exp6_1_1.s源文件,文件内容如下:
程序解读:
程序的功能是将存储器SRC处的源数据通过数据传送指令送到DST处
代码(2)伪指令ADR是将一个寄存器相关表达式或程序相关表达式的地址存入寄存器,在例子中相当于使R1指向SRC地址,R2指向DST地址,即初始化地址指针;
代码(3)DCB的作用是分配一组字节内存并定义其内容为指定字符串,也可以用“=”代替。例如:
SRC = “one small”
DST = “three big”
代码(4) ALIGN的作用是以字边界对齐当前内存段。
注:伪指令并不是ARM的汇编语言,没有相应的机器码,它是由汇编器提供的,在程序中的作用是为程序做准备工作。另外,不同的汇编器支持的伪指令可能不同。
(2)请先阅读程序,手工计算每一步的执行结果,并填入表3中(注意只需完成START部分的代码即可)。然后再通过单步运行程序,观察相关寄存器和存储器相应地址上的值的变化情况,核对和之前你在表上填的值是否一致。执行File-Reload Current Image 命令可以重新加载和运行当前映像文件。
表3 exp6_1_1.s单步运行结果
序号
文档评论(0)