网站大量收购独家精品文档,联系QQ:2885784924

ARM汇编指令存储区返拿问及程序分支.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARM汇编指令存储区返拿问及程序分支

昆明理工大学信息工程与自动化学院学生实验报告 ( 2012 — 2013 学年 第 2 学期 ) 课程名称:嵌入式技术及应用 开课实验室:信自楼443 2013年04月 专业、年级、班 计科101 学号 姓名 成绩 实验项目名称 ARM汇编指令存储区访问及程序分支 指导教师 万小容 教师评语 该同学是否了解实验原理: A.了解□ B.基本了解□ C.不了解□ 该同学的实验能力: A.强 □ B.中等 □ C.差 □ 该同学的实验是否达到要求: A.达到□ B.基本达到□ C.未达到□ 实验报告是否规范: A.规范□ B.基本规范□ C.不规范□ 实验过程是否详细记录: A.详细□ B.一般 □ C.没有 □ 教师签名: 年 月 日 一、实验目的及内容 1、编写程序循环对R4~R11进行8次赋值。R4~R11起始值为1~8,每次加操作后,把R4~R11的内容放入SP栈中,SP初始设置为0x800。最后把R4~R11用LDMFD指令清空赋值为0。 2、通过实验掌握使用ldm/stm,b,bl等指令完成较为复杂的存储区访问及程序分支,学习使用条件码,加强对CPSR的认识 3、单步调试,截图并用文字说明。 4、要有实验总结。 二、实验原理及基本技术路线图(方框原理图或程序流程图) ARM通用寄存器(R0-R15)可分为三类: 1、不分组寄存器R0-R7; 不分组寄存器R0~R7在所有处理器模式下,它们每一个都访问一样的32位寄存器。它们是真正的通用寄存器,没有体系结构所隐含的特殊用途。 2、分组寄存器 R8-R14; 分组寄存器R8~R14对应的物理寄存器取决于当前的处理器模式。若要访问特定的物理寄存器而不依赖当前的处理器模式,则要使用规定的名字。寄存器R8~R12各有两组物理寄存器:一组为FIQ模式,另一组为除了FIQ以外的所有模式。 寄存器R8~R12没有任何指定的特殊用途,只是在作快速中断处理时使用。寄存器R13、R14各对应6个分组的物理寄存器,1个用于用户模式和系统模式,其它5个分别用于5种异常模式。寄存器R13通常用做堆栈指针,称为SP;寄存器R14用作子程序链接寄存器,也称为LR。 3、程序计数器R15。 寄存器R15用做程序计数器 (PC)。 在本实验中,ARM 核工作在用户模式,R0~R15可用。 本实验涉及到的汇编指令语法及规则: ldr ldr伪指令将一个32位的常数或者一个地址值读取到寄存器中。当需要读取到寄存器中的数据超过了mov或者mnv指令可以操作的范围时,可以使用ldr伪指令将该数据读取到寄存器中。在汇编编译器处理源程序时,如果该常数没有超过mov或者mnv可以操作的范围,则ldr指令被这两条指令中的一条所替代,否则,该常数将被放在最近的一个文字池内(literal pool),同时,本指令被一条基于PC的ldr指令替代。 语法格式: ldr register , = expression 其中,expression为需要读取的32位常数;register为目标寄存器。 三、所用仪器、材料(设备名称、型号、规格等或使用软件) PC一台、Embest IDE集成开发环境。 四、实验方法、步骤(或:程序代码或操作过程) .equ stack_top, 0x800 .equ loop_time, 0x8 .global _start .text _start: /**//* 设置寄存器初始值 */ ldr r0, =reg_init ldmia r0!, {r4-r11} /**//* 设置栈顶初始值 */ mov sp, #stack_top /**//* 循环 8 次 */ mov r0, #loop_time loop: /**//* 累加 */ add r4, r4, #0x1 add r5, r5, #0x1 add r6, r6, #0x1 add r7, r7, #0x1 add r8, r8, #0x1 add r9, r9, #0x1 add r10, r10, #0x1 add r11, r11, #0x1

文档评论(0)

ayangjiayu3 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档