ARM与嵌入式技术实验
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
1、编写程序将R2的高8位传送到R3的低8位(不考虑R3的其他位)⑴、程序代码:.global_start_start:将立即数存储到R2中;将存储在R3中movR2,R2,ROR#24;循环移位24位,使R2中的高八位移到第八位andR2,R2,#0x000000ff;屏蔽掉R2的高24位,andR3,R3,#0xffffff00;屏蔽掉R2的低8位orrR3,R3,R2;用取或将R2的低8位移到R3得低8位stop:bstop.end⑵、实验内容:将存储在R2中将存储在R3中将R2中的高8位“12”移到R2的低8位,原来的数“”变为“”屏蔽掉R2中的高24位,采用或命令时使其不影响R3中高24位的数值屏蔽掉R3中的低8位,使使用或命令是能将R2的低8位移到R3的低8位将R2中的高8位”12”移到R3的低8位而不影响R3中的其他的24位2、实现64位的加法运算,要求【R1:R0】+【R3:R2】,结果放回【R1:R0】中⑴、程序代码:.global_start_start:;将立即数存储在R0中ldrR1,=0x8989eeee;将立即数8989eeee存储在R1中ldrR2,=0x504ed99d;将立即数504ed99d存储在R2中ldrr3,=0x8949556f;将立即数8949556f存储在R3中addsr0,r0,r2;使用带标志位的加法指令将R2+R0中的值存到R0adcr1,r1,r3;使用带进位的加法指令将R3+R1的值存到R1中,如果R0+R2产生了进位,则C=1,此时将R1+1stop:bstop.end⑵、实验内容:将立即数存储在R0中将立即数8989eeee存储在R1中将立即数504ed99d存储在R2中将立即数8949556f存储在R3中使用带标志位的加法指令将R2+R0中的值存到R0使用带进位的加法指令将R3+R1的值存到R1中,如果R0+R2产生了进位,则C=1,此时将R1+1⑶、结果分析注:以下分析均为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位相加得出的结果和实验得出的结果一样。再是高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:movR0,#10;将立即数10存储在R0中movR1,#10;将立即数10存到R1中,作为循环次数的限minus:subR1,R1,#1;标记一个minus子函数,每执行一次R1自减1mulR0,R1,R0;R1自减后与R0相乘,积放在R0中cmpR1,#0;判断R1是不是减到1了,如果没有则继续调用子程序bneminus;如果Z不等于1,那么跳转到子程序标记处stop:bstop.end⑵、实验内容:跟踪10次后的答案是:0x375f00⑶、结果分析:10!=10x9x8x7x6x5x4x3x2x1=3638800,转化为16进制为375f00(3x165+7x164+5x163+15x162+0x161+0x160=3145728+458752+20480+3840=3628800)可以看出实验结果和计算出来的结果一致,所以实验成功!4、编写程序将地址1000H~1030H的数据全部搬移到2000H~2030H中,并将原数据区清零⑴、程序代码:.global_start_start:ldrR0,=0x1000;将地址1000H送到R0中存储ldrR1,=0x2000;将地址2000H送到R1中存储movR2,#48;将立即数48送到R2中movR4,#0;初始化R4,将0存储到R4中copy:ldrbR3,[R0];标记子程序入口strbR4,[R0],#1;将寄存器R0中的内容移到R4中strbR3,[R1],#1;将寄存器R1中的内容移到R3中subsR2,R2,#1;判断是否移完bnecopy;如果没有移完则跳转到子程序入口继续移stop:bstop.end⑵、实验内容:⑶、结果分析由单步调试可以看出,没执行一次,则程序计数器PC就增加4,源地址首段地址为1000H,增加30H(3x16+0=48)则末段地址为1030H,之间有30H个空间,目的地址首段地址为2000H,增加30H(3x16+0=48)则末段地址为2030H,之间有30H个空间,然后使用strb指令将8位字节数据传输到指定的内存(此字节数据为元寄存器中的低8位)。由PC值可以看出试验成功。