arm实验二.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
arm实验二

汇编语言与接口技术实验报告 院 系 信息科学与工程学院 专业班级 计科1101 学生姓名 杜海 指导教师 黄向宇 提交日期 2014年 4 月 9日 实验二 ARM汇编语言程序设计 一、实验目的 初步学会使用IAR EWARM 开发环境及ARM 软件模拟器。 通过实验掌握简单ARM 汇编指令的使用方法。 通过实验掌握使用 ldm/stm、b、bl 等指令完成较为复杂的存储区访问和程序分支,学习使用条件码,加强对CPSR 的认识。 通过实验掌握 ARM 处理器16 位Thumb 汇编指令的使用方法。 二、实验内容 利用实验参考程序学习使用ldr/str、mov 等指令访问寄存器或存储单元。使用add/sub/lsl/lsr/and/orr 等指令,完成基本数学/逻辑运算。 编写程序循环对R4~R11 进行累加8 次赋值,R4~R11 起始值为1~8,每次加操作后把R4~R11 的内容放入SP 栈中,SP 初始设置为0x800。最后把R4~R11 用LDMFD 指令清空赋值为0。 新建工程,并自行编写汇编程序,分别使用ldr、str、ldmia、stmia 操作,实现对某段连续存储单元写入数据,并观察操作结果。学习分支程序设计,要求判断参数,根据不同参数,调用不同的子程序。 编写程序从ARM状态切换到Thumb,在ARM 状态下把R2 赋值为0在Thumb状态下把R2 赋值为0同时观察并记录CPSR、SPSR 的值,分析各个标志位。 三、实验设备 1. UP-TECH S2410实验平台,ARM标准/增强型仿真器套件 2. PC 操作系统WIN98 或WIN2000 或WINXP,IAR EWARM 集成开发环境,仿真调试驱动程序(H-JTAG)。 四、实验参考程序 #********************************************************************************************* # NAME: ARMcode1.s * # Author: Embest * # Desc: ARMcode examples * # copy words from src to dst * # History: shw.He 2005.02.22 * #********************************************************************************************* NUM EQU 20 AREA ARMcode1,CODE,READONLY ENTRY START ldr r0, =src /* r0 = pointer to source block */ ldr r1, =dst /* r1 = pointer to destination block */ mov r2, #num /* r2 = number of words to copy */ mov sp, #0x400 /* set up stack pointer (r13) */ blockcopy movs r3,r2, LSR #3 /* number of eight word multiples */ beq copywords /* less than eight words to move ? */ stmfd sp!, {r4-r11} /* save some working registers */ octcopy ldmia r0!, {r4-r11} /* load 8 words from the source */ stmia r1!, {r4-r11} /* and put them at the destination */ subs r3, r3, #1 /* decrement the counter */ bne octcopy /* ... copy more */ ldmfd sp!, {r4-r11} /* dont need these

文档评论(0)

kaiss + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档