项目3数据处理与乘法指令_第1页
项目3数据处理与乘法指令_第2页
项目3数据处理与乘法指令_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编制部门:计算机系 编制人:王晓春 编制日期:2013.1项目编号Item No. 3项目名称Item 数据处理与乘法指令训练对象Class计算机应用技术专业大二学生学时Time 2课程名称Course RISC 微控制器嵌入式系统技术教 材Textbook 嵌入式系统技术目的Objective1. 熟悉数据处理指令2. 熟悉 ARM 的乘法指令3. 64 位乘法指令的用法和含义4. 熟悉 ADS1.2 编译、下载、调试程序的基本方法内容(方法、步骤、要求或考核标准及所需工具、材料、设备等)一、实验内容1. 学习 ARM 的数据处理指令。2. 注意第二操作数的运用。3. 学习 ARM 的乘法指令用法。4. 通过调试相关的程序,对比几条乘法指令的差异。二、实训步骤、方法与要求1. 多位数的加法已知二个64位的数,分别保存在R0,R1,R4 ,R5中,其中R0,R4保存低32 位,R1和R5保存高32位,其和保存在R8 和R9 中。 (求0x11111111FFFFFFFF+0x2222222200000001=0x3333333400000000)程序段如下:AREA Example, CODE, READONLY ENTRYstartMVN R0,#0LDR R1,=0x11111111MOV R4,#1LDR R5,=0x22222222ADDS R8,R0,R4ADC R9,R1,R5B startEND1) 注意上例中 MOV 指令和 MVN 指令的使用。 (强调)2) 注意上例中 S 位的使用。 (强调)3) 修改程序,将 64 位数的相加,改为 128 位数的相加,被加数保存在 R0,R1,R2,R3 中;加数保存在 R4,R5,R6,R7 中,其中 R0,R4 保存低 32 位,R3 和 R7 保存高 32 位,其和保存在R8,R9,R10,R11 中。实现如下两个 128 位数的相加:0xFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF+ 0x00000000 000000000 00000000 00000001-0x00000000 000000000 00000000 000000002. 逻辑运算编辑、编译并调试以下程序,分析程序结果,进行判断该程序完成了什么样的操作?以下程序实现了什么?深 圳 职 业 技 术 学 院Shenzhen Polytechnic实 训(验)项 目 单Training Item AREA Example, CODE, READONLY ENTRYstartLDR R0,=0x12345678AND R1,R0,#0xFF000000MOV R2,R1,ROR #24AND R1,R0,#0x00FF0000MOV R3,R1,ROR #16AND R1,R0,#0x0000FF00MOV R4,R1,ROR #8AND R5,R0,#0x000000FFB startEND 1) 如果希望将 R2 到 R5 共四个寄存器中的内容拼成一个字,放在 R1 中,如何实现?2) 在上例程序的基础上完成将 R2-R5 四个寄存器的值拼为一个 32 位字放在 R1 中的程序。3. 比较指令下述程序实现了什么?AREA Example, CODE, READONLY ENTRYstartMOV R0,#9MOV R1,#15CMP R0,R1MOVLT R3,R1MOVGT R3,R0MOVEQ R3,#0loopB loopEND修改 R0 的值为 20,观察指令的执行过程,看看程序的执行结果有何不同。4. 程序分析以下代码是从一段程序中截取的一段代码,分析该段代码所完成的功能:f_delayLDR R3,=0x1ffffdelayNOPNOPNOPSUB R3,R3,#1CMP R3,#0BNE delayMOV PC,LR 其中的 NOP 是空操作,ARM 没有相应的伪指令编码,所以常常将该指令处理为 MOV R0,R0。这段程序涉及了数据处理指令的一些基本操作,通过仔细分析得出结论。5. 数据处理指令拓展训练1) 在上述程序的基础上,增加一个数 R2,初值赋十进制数 19,实现三个数大小的比较。最大数放在 R3中,如果三个数相等,则 R3 中放该数。2) 有三个数分别放在 R0,R1,R2 中,实现 3 个数大小的排队,最大数放在 R0 中,最小数放在 R2 中。6. 乘法指令以下程序用不同的指令实现了两个32位数的乘法,观察其结果有何差别?AREA Example, CODE, READONLY ENTRYstartLDR R0,=0x7FFFFFFFLDR R1,=0x2MUL R2,R0,R1SMULL R3,R4,R0,R1UMULL R5,R6,R0,R1loopB loopEND然后将 R0 修改为 0xFFFFFFFF 观察结果,会有一个很有意思的现象,三个结果是完全不同的,这是什么原因呢?通过对比,了解扩展符号位的概念。7.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论