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

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

ID:69194393

大小:259.15 KB

页数:8页

时间:2022-01-02

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

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

1、.电子科技高校实验报告修正了MOOC和旧版答案的错误,代码使用KeiluVision5均已调试通过;课程名称微处理器系统结构与嵌入式系统设计试验名称ARM基础编程试验任课老师试验老师学号试验地点分组号时间年月日一、试验目的1.熟识并把握常用ARM汇编指令2.熟识并把握“C+汇编”混合编程技术3.娴熟使用ARM软件开发调试工具Keil二、试验容1.学习使用Keil开发工具2.使用ARM汇编语言,编程实现1+2++N累加运算功能3.使用C调用汇编函数,实现字符串拷贝功能4.使用汇编调用C函数,实现求和运算功能5.使用ARM汇编语言,实现冒泡排序算法(选做)三、试验步骤..1.试验1.

2、1:运行Keil,建立工程文件,单步运行调试演示示例程序,深刻懂得每一条指令,观看寄存器,存空间的变化;2.试验1.2:用汇编语言实现1+2+...+N的累加:a)建立新工程,加入试验1.2文件夹中的sum.s;b)用汇编补充算法核心部分,代码参考流程图如下图1.1所示;c)使用单步调试,认真观看过程中关键寄存器值的变化;R0暂存累加和RO=R0+R1结果溢出?NOR1>=NYESYESSUM_ENDNOR1=R1+1图1.1R1自增11.试验1.3:C调用汇编实现字符串拷贝功能:a)建立新工程,加入试验1.3文件夹中的main.c和testfile.s〔同一个工程下添加

3、两个文件一起编译〕;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中;..a)运行Debug进行调试5.试验1.5:ARM汇编实现冒泡算法:a)建立新工程,加入试验1.5文件夹中的maopao.s;b)补充完成源代码中缺失的部分,实现冒

4、泡排序功能;c)运行Debug进行调试四、试验结果1.试验1.2:用汇编语言实现1+2+...+N的累加核心代码如下:ADDR0,R1BVSSUM_ENDCMPR1,R2BHSSUM_ENDADDR1,#1BSUN_L1图1.2可以观察最终结果显示在寄存器R8处,十六进制为13BA,转换成十进制为5050,实现了累加功能;2.试验1.3:C调用汇编实现字符串拷贝功能核心代码如下:LDRBR2,[R1],#1;拷贝源字符串的一个字节..STRBR2,[R0],#1;将拷贝的字节复制到目标空间图1.3图1.4可以看出拷贝前srcstr是”aaaa”,dststr是”bbbb”,拷贝后

5、srcstr是”aaaa”,dststr是”aaaa”,实现了字符串拷贝功能;3.试验1.4:汇编调用C实现求和1+2+...+10核心代码如下:MOVR0,#1MOVR1,#2MOVR2,#3MOVR3,#10BLgMOVR8,R0图1.5..可以看出最终结果显示在寄存器R8处,十六进制表示为0010,转换为十进制为0x104.试验1.5:ARM汇编实现冒泡算法代码如下:AREASort,CODE,READONLYENTRYstartMOVR4,#0LDRR6,=srcADDR6,R6,#lenLDRR7,=src;初始化R4作为循环计数器inner2MOVR1,R7CMPR6

6、,R7BLEouter;将每次循环开头,正确设置R1的值为数组开头地址;假如全部数字均已排序,即R6<=R7输出跳转到outer函数innerLDRR2,[R1]LDRR3,[R1,#4]CMPR2,R3BGTexchange;判定相邻数字是否符合规律,不符合跳转到exchange函数inner1ADDR1,R1,#4CMPR1,R6BLTinnerADDR4,R4,#4CMPR4,#lenBLEsubtraction..exchangeSTRR3,[R1]STRR2,[R1,#4]Binner1subtractionSUBR6,R6,#4Binner2outerLDRR1,=s

7、rcsrcDCD2,4,10,8,14,1,20AREAArray,DATA,READWRITElenEQU7*4END图1.6排序前在star函数中获得R6地址后,第一如上图,设置权限才能正确执行程序;..图1.7排序前图1.8排序后地址0x0000005C-0x00000078中储存的排序后的结果正确,程序实现了冒泡法排序功能;五、试验总结1.此次试验用汇编和C语言实现了1~N的累加、字符串的拷贝、数字求和以及冒泡法排序这几项功能,明白了汇编语言的基础指令及其意义,学会了使用

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

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

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