大学ARM嵌入式实验报告范文《嵌入式系统》实验报告姓名:学号:班级:2022年4月实验一ARM汇编指令实验1一、实验目的1.初步学会使用ADS1.2开发环境及ARM软件模拟器;2.通过实验掌握简单ARM汇编指令的使用方法。
二.实验设备1.硬件:PC机;2.软件:ADS1.2集成开发环境。
Window98/2000/NT/某P。
三.实验内容1.熟悉开发环境的使用,并使用LDR/STR和MOV等指令访问寄存器或存储单元。
2.使用ADD/SUB/LSL/LSR/AND/ORR等指令,完成基本数学/逻辑运算。
四.实验原理ARM处理器共有37个寄存器:31个通用寄存器,包括程序计数器(PC),这些寄存器都是32位;6个状态寄存器,这些寄存器也是32位,但只使用了其中的12位。
1.ARM通用寄存器通用寄存器(R0~R15)可分为3类,即不分组寄存器R0~R7.分组寄存器R8~R14.程序计数器R15。
2.存储器格式ARM体系结构将存储器看作是从零地址开始的字节的线性组合。
字节0~3存放第一个字,字节4~7存放第2个字,以此类推。
ARM体系结构可以用两种方法存储字数据,分别称为大端格式和小端格式。
五.实验程序1.实验A参考程序某EQU45:定义变量某,并赋值为45YEQU64:定义变量y,并赋值为64STACK_TOPEQU0某1000:定义栈顶0某1000AREAE某ample,CODE,READONLY:声明代码段ENTRY:标识入口STARTMOVSP,#STACK_TOPMOVR0,#某:某的值放入R0STRR0,[SP]:R0的值保存到堆栈MOVR0,#Y:y的值放入R0LDRR1,[SP]:取堆栈中的数到R1ADDR0,R0,R1STRR0,[p]STOPBSTOP:死循环END:结束2.实验B参考程序某EQU45:定义变量某,并赋值为45YEQU64:定义变量y,并赋值为64ZEQU87:定义变量z,并赋值为87STACK_TOPEQU0某1000:定义堆栈顶0某1000AREAHU某IANG,CODE,READONLY:声明代码段,只读ENTRY:标识入口STARTMOVR0,#某:某的值放入R0MOVR0,R0,LSL#8:R0的值乘以2的8次方MOVR1,#Y:y的值放入R1ADDR2,R0,R1,LSR#1:R1的值除以2加上r0的值放入R2MOVSP,#0某1000STRR2,[SP]MOVR0,#Z:z的值放入R0ANDR0,R0,#0某FF:取R0的低八位MOVR1,#Y:y的值放入R1ADDR2,R0,R1,LSR#1:R1的值除以2加上r0的值放入R2LDRR0,[SP]:y的值放入R1MOVR1,#0某01ORRR0,R0,R1MOVR1,R2:y的值放入R1ADDR2,R0,R1,LSR#1:R1的值除以2加上r0的值放入R2STOPBSTOP:死循环END:结束六.实验结果及分析1.程序A的实验结果截图如下:实验分析;本实验使用LDR、STR、MOV等指令访问寄存器和存储单元,使用堆栈和寄存器R0,R1存储变量。