电子科技大学微嵌实验

电子科技大学微嵌实验

ID:69023357

大小:124.00 KB

页数:10页

时间:2021-10-25

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

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

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

2、能4.使用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调用汇编实现字符串拷贝功能:..word.zl-.-a)建立新工程,参加实验1.3文件夹

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

4、法:a)建立新工程,参加实验1.5文件夹中的maopao.s。b)补充完成源代码中缺失的局部,实现冒泡排序功能。c)运行Debug进展调试一、实验结果1.实验1.2:用汇编语言实现1+2+...+N的累加核心代码如下:ADDR0,R1BVSSUM_ENDCMPR1,R2BHSSUM_END..word.zl-.-ADDR1,#1BSUN_L1图1.2可以看见最终结果显示在存放器R8处,十六进制为13BA,转换成十进制为5050,实现了累加功能。1.实验1.3:C调用汇编实现字符串拷贝功能核心代码如下:LDRBR2,[R1],#1;拷

5、贝源字符串的一个字节STRBR2,[R0],#1;将拷贝的字节复制到目标空间图1.3图1.4..word.zl-.-可以看出拷贝前srcstr是〞aaaa〞,dststr是〞bbbb〞,拷贝后srcstr是〞aaaa〞,dststr是〞aaaa〞,实现了字符串拷贝功能。1.实验1.4:汇编调用C实现求和1+2+...+10核心代码如下:MOVR0,#1MOVR1,#2MOVR2,#3MOVR3,#10BLgMOVR8,R0图1.5可以看出最终结果显示在存放器R8处,十六进制表示为0010,转换为十进制为0x102.实验1.5:ARM

6、汇编实现冒泡算法代码如下:..word.zl-.-AREASort,CODE,READONLYENTRYstartMOVR4,#0LDRR6,=srcADDR6,R6,#lenLDRR7,=src;初始化R4作为循环计数器inner2MOVR1,R7CMPR6,R7BLEouter;将每次循环开场,正确设置R1的值为数组开场地址;如果所有数字均已排序,即R6<=R7输出跳转到outer函数innerLDRR2,[R1]LDRR3,[R1,#4]CMPR2,R3BGTexchange;判断相邻数字是否符合规律,不符合跳转到exchan

7、ge函数inner1ADDR1,R1,#4CMPR1,R6..word.zl-.-BLTinnerADDR4,R4,#4CMPR4,#lenBLEsubtractionexchangeSTRR3,[R1]STRR2,[R1,#4]Binner1subtractionSUBR6,R6,#4Binner2outerLDRR1,=srcsrcDCD2,4,10,8,14,1,20AREAArray,DATA,READWRITElenEQU7*4END..word.zl-.-图1.6排序前在star函数中获得R6地址后,首先如上图,设置权限

8、才能正确执行程序。图1.7排序前图1.8排序后地址0x0000005C-0x00000078中保存的排序后的结果正确,程序实现了冒泡法排序功能。..word.zl-.-一、实验总结1.此次实验用汇编和C语言实现了1~N的累加、字符串的

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

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

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