实验九 arm数据处理指令数据加载存储指令实验.doc

实验九 arm数据处理指令数据加载存储指令实验.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

karin + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档