ARM实验报告范本_第1页
ARM实验报告范本_第2页
ARM实验报告范本_第3页
ARM实验报告范本_第4页
全文预览已结束

下载本文档

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

文档简介

1、欢迎阅读A R M与嵌入式技术实验报生口1、编写程序将R2的高8位传送到R3的低8位(不考虑R3的其他位)、程序代码:.global _start_start:将立即数存储到R2中- 3- . jT-r" t.i' y;将存储在R3中mov R2,R2,ROR #24 ;循环移位24位,使R2中的高八位移到第八位and R2,R2,#0x000000ff;屏蔽掉 R2的高24位,and R3,R3,#0xffffff00 ;屏蔽掉 R2的低 8位"工 I | Iorr R3,R3,R2 ;用取或将R2的低8位移到R3得低8位 | stop:b stop.end、实验

2、内容:将存储在R2中将存储在R3中将R2中的高8位12”移到R2的低8位,原来的数“变为屏蔽掉R2中的高24位,采用或命令时使其不影响 R3中高24位的数值屏蔽掉R3中的低8位,使使用或命令是能将 R2的低8位移到R3的低8位将R2中的高8位” 1绻到R3的低8位而不影响R3中的其他的24位欢迎阅读2、实现64位的加法运算,要求R1:R0 +【R3:R2 ,结果放回【R1:R0 中、程序代码:.global _start_start:;将立即数存储在R0中ldr R1,=0x8989eeee;将立即数 8989eeee 存储在 R1 中ldr R2,=0x504ed99d;将立即数 504ed

3、99d 存储在 R2中ldr r3,=0x8949556f;将立即数 8949556f 存储在 R3中 .adds r0,r0,r2;使用带标志位的加法指令将 R2+R0中的值存到R0adc r1,r1,r3 ;使用带进位的加法指令将 R3+R1的值存到R1中,如果R0+R2产生了进位,则C=1 ,此 y,x' 时将R1+1stop: b stop .end、实验内容:将立即数存储在R0中将立即数8989eeee存储在 R1中将立即数504ed99d存储在R2中将立即数8949556f存储在R3中使用带标志位的加法指令将R2+R0中的值存到R0使用带进位的加法指令将j R3+R1的值存

4、到R1中,如果R0+R2产生了进位,则 C=1 ,此时将R1+1、结果分析 ,I注:以下分析均为16进制计算【R1 : R0 】+【R3 : R2 =【R1 : R0 【8989eeee: +8949556f : 504ed99d 】=【12d3445d : 97a71f05 】首先低 32 位相加:8+d=5 , C=1 ; 6+9+1=0 , C=1 ; 5+9+1=f , C=0 ;4+d=1 , C=1 ; 8+e+1=7 , C=1 ; 5+4+1=a , C=0;7+0=7 , C=0 ; 4+5=9 , C=0。相加后的结果为:,可以看出低32位相加得出的结果和实验得出的结果一样

5、。再是高 32 位相加:8989eeee+8949556f : e+f=d , C=1 ; e+6+1=5 , C=1 ; e+5+1=4 , C=1 ;e+5+1=4 , C=1 ; 9+9+1=3 , C=1 ; 8+4+1=d , C=0;9+9+0=2 , C=1 ; 8+8+1=1 , C=1。相加后的结果为:8989eeee+8949556f =12d3445d,可以看出高32位相加得出的结果和实验得出的结果一样。所以由结果可以看出实验成功!3、编写一段程序计算10 !'一、程序代码:.global _start_start: mov R0,#10;将立即数10存储在R0中

6、mov R1,#10;将立即数10存至IJR1中,作为循环次数的限minus : sub R1,R1,#1;标记一个minus子函数,每执行一次 R1自减1mul R0,R1,R0 ; R1自减后与R0相乘,积放在 R0中cmp R1,#0 ;判断R1是不是减到1 了,如果没有则继续调用子程序 'i L |bne minus ;如果Z不等于1 ,那么跳转到子程序标记处stop: I -b stop.end、实验内容:跟踪10次后的答案是:0x375f00、结果分析:10 ! =10x9x8x7x6x5x4x3x2x1=3638800,转化为 16进制为 375f00(3x165+7x1

7、6 4+5x16 3+15x16 2+0x16 1+0x16 0=3145728+458752+20480+3840=3628800)可以看出实验结果和计算出来的结果一致,所以实验成功!4、编写程序将地址1000H1030H的数据全部搬移到2000H2030H中,并将原数据区清零、程序代码:.global _start _start:ldr R0,=0x1000;将地址1000H送至I R0中存储Idr R1,=0x2000;将地址2000H送至U R1中存储mov R2,#48 ;将立即数48送至U R2中mov R4,#0 ;初始化 R4,将 0存储到 R4中.copy: ldrb R3,R0;标记子程序入口strb R4,R0,#1;将寄存器R0中的内容移到R4中I _ystrb R3,R1,#1;将寄存器R1中的内容移到R3中subs R2,R2,#1;判断是否移完bne copy ;如果没有移完则跳转到子程序入口继续移stop: b stop .end、实验内容: 1L 、结果分析由单步调试可以看出,没执行一次,则程序计数器PC就增加4,源地址首段地址为1000H ,增加30HI I(3x16+0=48 )则末段地址为1030H

温馨提示

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

评论

0/150

提交评论