微嵌实验1-实验报告 下载本文

内容发布更新时间 : 2024/5/4 19:28:26星期一 下面是文章的全部内容请认真阅读。

电子科技大学

实 验报

课程名称

微处理器系统结构与嵌入式系统设计 ARM汇编基础实验

实验教师

实验名称 任课教师 实验地点

姓名

学号 月 日

分组号

时间

一、实验目的

1. 熟悉并掌握常用ARM汇编指令 2. 熟悉并掌握“C+汇编”混合编程技术 3. 熟练使用ARM软件开发调试工具Keil

二、实验内容

1. 学习使用Keil开发工具

2. 实现累加运算功能(汇编编程,必做) 3. 实现字符串拷贝功能(C+汇编,必做) 4. 实现求和运算功能(C+汇编,必做) 5. 实现冒泡排序算法(汇编编程,选做)

微处理器系统结构与嵌入式系统设计实验报告

三、实验步骤

1.学习使用keil开发工具

1. 点击“Keil uVision5”打开软件主窗口。

2. 点击Project->New uVision Project建立新工程。 3. 为新工程命名。

4. 为工程选择目标器件:三星S3C2440A。

5. 选择是否添加S3C2440.s启动文件:C源程序工程选“是”,汇编源程序工程选

“否”。

6. 在工程Source Group上点右键选择添加新工程文件。 7. 选择源文件类型。 8. 录入源代码并保存。 9. 对工程进行build或rebuild。

10. 点击debug按钮进入/退出调试,忽略代码大小限制。使用单步调试, 仔细观察过

程中 关键寄存器值的变化。

2.各个实验步骤

实验1.1: 用汇编语言实现1+2+...+N的累加(必做) 1. 建立新工程,加入实验1.2文件夹中的sum.s

2. 用汇编补充算法核心部分,代码参考流程图如下图所示。

RO=R0+R1YES结果溢出?NOYESR1>=NNOR1=R1+1SUM_END 3. 使用单步调试,仔细观察过程中关键寄存器值的变化。 实验1.2 : C调用汇编实现字符串拷贝功能(必做)

1. 建立新工程,加入实验1.3文件夹中的main.c和testfile.s(同一个工程下添加两个文

件一起编译)。

2. 补充完成源代码中缺失的部分,实现字符串拷贝功能 3. 运行Debug进行调试

实验1.3: 汇编调用C实现实现求和1+2+...+N(必做)

1. 建立新工程,加入实验1.4文件夹中的sum.c和testfile.s(同一个工程下添加两个文

件一起编译)。

2. 补充完成源代码中缺失的部分,通过调用c函数g()实现1+2+3+glovb1,结果存在

R8中。

3. 运行Debug进行调试

实验1.4:ARM汇编实现冒泡算法(选做)

1. 建立新工程,加入实验1.5文件夹中的maopao.s。 2. 补充完成源代码中缺失的部分,实现冒泡排序功能。 3. 运行Debug进行调试

四、实验结果

实验1.1用ARM汇编实现1+2+…+n的运算。

在sum.s文件中,添加如下核心代码:

------------------------------------------------------------------------------------------------------------------------- SUN_L1

ADD R0,R1 ;R0,R1求和

BVS SUM_END ;判断是否溢出,溢出则执行SUM_END程序,求和结束 CMP R1,R2 ;R1、R2作差与0进行比较

BHS SUM_END ;R1>=R2,则执行SUM_END程序,否则向下继续执行 ADD R1,#1 ;R1增1

B SUN_L1 ;循环运行SUN_L1 调试过程:

1. 设置N的值并赋值给R0