电子科技大学微嵌实验新颖版

电子科技大学微嵌实验新颖版

ID:44951591

大小:124.19 KB

页数:8页

时间:2019-11-05

电子科技大学微嵌实验新颖版_第1页
电子科技大学微嵌实验新颖版_第2页
电子科技大学微嵌实验新颖版_第3页
电子科技大学微嵌实验新颖版_第4页
电子科技大学微嵌实验新颖版_第5页
资源描述:

《电子科技大学微嵌实验新颖版》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、标准文案电子科技大学实验报告修正了MOOC和旧版答案的错误,代码使用KeiluVision5均已调试通过。课程名称微处理器系统结构与嵌入式系统设计实验名称ARM基础编程实验任课教师实验教师姓名学号实验地点分组号时间年月日一、实验目的1.熟悉并掌握常用ARM汇编指令2.熟悉并掌握“C+汇编”混合编程技术3.熟练使用ARM软件开发调试工具Keil二、实验内容1.学习使用Keil开发工具2.使用ARM汇编语言,编程实现1+2+……+N累加运算功能3.使用C调用汇编函数,实现字符串拷贝功能4.使用汇编调用C函数

2、,实现求和运算功能5.使用ARM汇编语言,实现冒泡排序算法(选做)三、实验步骤大全标准文案1.实验1.1:运行Keil,建立工程文件,单步运行调试演示示例程序,深刻理解每一条指令,观察寄存器,内存空间的变化。2.实验1.2:用汇编语言实现1+2+...+N的累加:a)建立新工程,加入实验1.2文件夹中的sum.s。b)用汇编补充算法核心部分,代码参考流程图如下图1.1所示。c)使用单步调试,仔细观察过程中关键寄存器值的变化。R0暂存累加和R1自增1图1.13.实验1.3:C调用汇编实现字符串拷贝功能:a

3、)建立新工程,加入实验1.3文件夹中的main.c和testfile.s(同一个工程下添加两个文件一起编译)。b)补充完成源代码中缺失的部分,分别实现1.拷贝源字符串的一个字节到R2中;2.将拷贝的字节复制到目标空间。c)运行Debug进行调试。4.实验1.4:汇编调用C实现求和1+2+...+10:a)建立新工程,加入实验1.4文件夹中的sum.c和testfile.s(同一个工程下添加两个文件一起编译)。b)补充完成源代码中缺失的部分,通过调用c函数g()实现1+2+3+glovb1,结果存在R8中

4、。大全标准文案a)运行Debug进行调试1.实验1.5:ARM汇编实现冒泡算法:a)建立新工程,加入实验1.5文件夹中的maopao.s。b)补充完成源代码中缺失的部分,实现冒泡排序功能。c)运行Debug进行调试一、实验结果1.实验1.2:用汇编语言实现1+2+...+N的累加核心代码如下:ADDR0,R1BVSSUM_ENDCMPR1,R2BHSSUM_ENDADDR1,#1BSUN_L1图1.2可以看见最终结果显示在寄存器R8处,十六进制为13BA,转换成十进制为5050,实现了累加功能。2.实验

5、1.3:C调用汇编实现字符串拷贝功能核心代码如下:LDRBR2,[R1],#1;拷贝源字符串的一个字节大全标准文案STRBR2,[R0],#1;将拷贝的字节复制到目标空间图1.3图1.4可以看出拷贝前srcstr是”aaaa”,dststr是”bbbb”,拷贝后srcstr是”aaaa”,dststr是”aaaa”,实现了字符串拷贝功能。1.实验1.4:汇编调用C实现求和1+2+...+10核心代码如下:MOVR0,#1MOVR1,#2MOVR2,#3MOVR3,#10BLgMOVR8,R0图1.5大全

6、标准文案可以看出最终结果显示在寄存器R8处,十六进制表示为0010,转换为十进制为0x101.实验1.5:ARM汇编实现冒泡算法代码如下:AREASort,CODE,READONLYENTRYstartMOVR4,#0LDRR6,=srcADDR6,R6,#lenLDRR7,=src;初始化R4作为循环计数器inner2MOVR1,R7CMPR6,R7BLEouter;将每次循环开始,正确设置R1的值为数组开始地址;如果所有数字均已排序,即R6<=R7输出跳转到outer函数innerLDRR2,[R1

7、]LDRR3,[R1,#4]CMPR2,R3BGTexchange;判断相邻数字是否符合规律,不符合跳转到exchange函数inner1ADDR1,R1,#4CMPR1,R6BLTinnerADDR4,R4,#4CMPR4,#lenBLEsubtraction大全标准文案exchangeSTRR3,[R1]STRR2,[R1,#4]Binner1subtractionSUBR6,R6,#4Binner2outerLDRR1,=srcsrcDCD2,4,10,8,14,1,20AREAArray,DAT

8、A,READWRITElenEQU7*4END图1.6排序前在star函数中获得R6地址后,首先如上图,设置权限才能正确执行程序。大全标准文案图1.7排序前图1.8排序后地址0x0000005C-0x00000078中保存的排序后的结果正确,程序实现了冒泡法排序功能。一、实验总结1.此次实验用汇编和C语言实现了1~N的累加、字符串的拷贝、数字求和以及冒泡法排序这几项功能,了解了汇编语言的基础指令及其意义,学会了使用了Keil编译器编写和调试

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。