山东大学嵌入式实验报告 下载本文

嵌入式实验报告

班级:电信工X班 姓名:XXX 学号:20120012XXXX

实验一、ARM汇编指令实验-简单数据搬移实验

实验目的:

熟悉实验开发环境,掌握简单ARM汇编的使用方法 实验内容

熟悉开发环境并使用LDR/STR,MOV等指令访问寄存器或存储单元; 使用ADS/SUB/LSL/LSR/AND/ORR等指令完成基本数学/逻辑运算。 实验要求

(1) 按照前面叙述介绍的方法,在ADS下创建一个工程asmlabl,定义两个变量x,y和堆

栈地址0x1000,将变量x的内容存到堆栈顶,然后计算x+y,并将和存到堆栈的下一个单元。通过AXD查看寄存器和memory和寄存器中数据的变化。

(2) 在指令后面加上适当注释,说明指令功能。

(3) 指出程序执行后各相关寄存器及存储器单元的具体内容。 程序代码截图如下:

程序运行结果截图:

由实验结果可知堆栈的第二个单元中存放了x+y的值6D

练习题

编写程序实现对一段数据的最大值和最小值搜索,最大值存在于max变量之中,最小值存在于min变量之中。提示:数据的定义采用伪指令:DCD来实现。

基本思路:利用R0做基地址,将R1,R2分别放入第一单元的内容,利用R3做循环计数,利用R4遍历读取第2至最后一个数据,如果R1的数据小于新读入的R4数据则将R4的内容存入R1,如果R2的内容大于R4的内容则将R4的内容存入R2,。遍历完成之后,R1将存放最大数据,R2将存放最小数据。

程序代码截图如下:

程序运行结果截图:

实验二 ARM汇编指令实验2-字符串拷贝实验

实验目的

通过实验掌握使用LDB/STB,b等指令完成较为复杂的存储区访问和程序分支,学会使用条件码。 实验内容

熟悉开发环境的使用并完成一块存储区的拷贝。

完成分支程序设计,要求判断参数,根据不同参数,调用不同的子程序。 实验要求

(1) 按照2.3节介绍的方法,在ADS下创建一个工程asmab2,定义两个数据存储区Src

和Dst,Src用于存放原字符串,Dst用于存放目的字符串。堆栈地址0x400,将变量原字符串的内容拷贝到目的字符串中,要能判断原字符串的结束符(0),并统计字符串的个数。通过AXD查看寄存器和memory和寄存器中数据的变化。

(2) 在指令后面加上适当注释,说明指令功能。

(3) 指出程序执行完后各相关寄存器及存储器单元的具体内容。 程序代码截图如下:

程序运行结果 源字符串