下载此文档

arm与嵌入式实验报告.doc


文档分类:IT计算机 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
华中科技大学文华学院 ARM 实验专业班级: 姓名: 学号: 指导老师: 实验日期: 2013 年6月 10日一、实验目的 1. 学习使用 Embest IDE 开发环境及 ARM 软件模拟器; 2. 掌握简单 ARM 汇编指令, 进一步加强对嵌入式的熟悉和了解。二、实验设备硬件: PC机软件: Embest IDE 开发环境三、实验内容分析及调试结果例 2 :编写程序将 R2 的高 8 位传送到 R3 的低 8 位(不考虑 R3 的其它位) 程序代码: ..global _start .code 32 .text _start: mov r2,#0x08000002 mov r1,r2,ror #0x18 /*r2 循环右移 24 位送给 r1*/ and r1,r1,#0xff /* 屏蔽高 24位*/ mov r3,#02 and r3,r3,#0 orr r3,r3,r1 /*将 r1 中的数据送到 r3中*/ stop: b stop .end 运行结果分析: ( 1) 数据下载( 2) r2 中的高 8 位数据送到 r1中( 3) r1 中的数据送到 r3中调试所遇到的问题及解决方法: 1. 就是有时把 16 进制数和十进制搞混了,造成循环位数出错。 mov r1,r2,ror #0x18 → mov r1,r2,ror #0x24 2. 忘记屏蔽高位的数据,之前设置的数为( mov r2,#0x08000000 )就没有发现这个问题,后来修改为( mov r2,#0x08000002 )则为: 例 3:实现 64 位加法运算,要求【 R2:R1 】+【 R4:R3 】, 结果放回【 R2:R1 】中; 程序代码: .global _start .code 32 .text _start: mov r1,#0x6f mov r2,#0x08 mov r3,#0x20 mov r4,#0x05 adds r1,r1,r3 /*r1 等于低 32 位相加,并影响标志位*/ adc r2,r2,r4 /*r2 等于高 32 位相加,并加上低位进位*/ stop: b stop .end 运行结果: ( 1) 数据下载( 2) 低位相加送到 r1 ( 3) 、高位相加送到 r2 调试所遇到的问题及解决方法: 在这个程序中我注意到的就是低位相加影响到标志位结果是因为没有溢出, 没有进位, 没有负数, 其实当我将程序改为( mov r1,#0x7f000000 mov r3,#0x7f000000 ), 则会出现( crsr : 0x900000d3 ), 没有进位标志。就是在这一点上无法体现这是两个 64 位数的相加。例 5 :编写除法运算(不使用移位指令) ,并保留商(若不能整除则要求保留余数) 程序代码: .global _strat .text _strat: mov r1,#65 /* 被除数 65送到 r1中*/ mov r3,#1 /*计数*/ loop: mov r0,#4 /*除数 4送到 r0*/ mul r2,r0,r3 mov r0,r2 add r3,r3,#1 cmp r1,r0 /* 除数和被除数的比较*/ bhi loop /* 被除数大于除数跳到 loop*/ sub r3,r3,#2 /* 求得商*/ mov r0

arm与嵌入式实验报告 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数9
  • 收藏数0 收藏
  • 顶次数0
  • 上传人ranfand
  • 文件大小0 KB
  • 时间2016-05-03