蚂蚁文库
换一换
首页 蚂蚁文库 > 资源分类 > DOC文档下载
 

arm汇编指令存储区访问及程序分支

  • 资源ID:52140286       资源大小:895.00KB        全文页数:8页
  • 资源格式: DOC        下载权限:游客/注册会员    下载费用:10积分 【人民币10元】
快捷注册下载 游客一键下载
会员登录下载
三方登录下载: 微信快捷登录 QQ登录  
下载资源需要10积分 【人民币10元】
邮箱/手机:
温馨提示:
支付成功后,系统会自动生成账号(用户名和密码都是您填写的邮箱或者手机号),方便下次登录下载和查询订单;
支付方式: 微信支付    支付宝   
验证码:   换一换

 
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,既可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰   

arm汇编指令存储区访问及程序分支

-1- 昆明理工大学信息工程与自动化学院学生实验报告 ( 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初始设置为0 x800。最后把R4~R11用LDMFD指令 清空赋值为0。 2、通过实验掌握使用ldm/stm,b,bl等指令完成较为复杂的存储区访问及程序分支, 学习使用条件码,加强对CPSR的认识 3、单步调试,截图并用文字说明。 4、要有实验总结。-2- 二、实验原理及基本技术路线图(方框原理图或程序流程图)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可以操作的范-3- 围,则ldr指令被这两条指令中的一条所替代,否则,该常数将被放在最近的一个文字池 内(literal pool) ,同时,本指令被一条基于PC的ldr指令替代。 语法格式 ldr , 其中,expression为需要读取的32位常数;register为目标寄存器。 三、所用仪器、材料(设备名称、型号、规格等或使用软件)PC一台、Embest IDE集成开发环境。 四、实验方法、步骤(或程序代码或操作过程) .equ stack_top, 0 x800 .equ loop_time, 0 x8 .global _start .text _start/**//* 设置寄存器初始值 */ldr r0, reg_initldmia r0, {r4-r11}/**//* 设置栈顶初始值 */mov sp, stack_top/**//* 循环 8 次 */mov r0, loop_time loop-4-/**//* 累加 */add r4, r4, 0 x1add r5, r5, 0 x1add r6, r6, 0 x1add r7, r7, 0 x1add r8, r8, 0 x1add r9, r9, 0 x1add r10, r10, 0 x1add r11, r11, 0 x1/**//* 入栈 */stmfd sp, {r4-r11}subs r0, r0, 0 x1bne loop loop_out/**//* R4-R11 清零 */ldr r0, reg_finildmfd r0, {r4-r11}/**//* 结束 */ stop b stop .ltorg/**//* 寄存器的最终值 */ reg_fini.long 0, 0, 0, 0, 0, 0, 0, 0-5-/**//* 寄存器的初始值 */ reg_init.long 1, 2, 3, 4, 5, 6, 7, 8 .end 五、实验过程原始记录 测试数据、图表、计算等-6--7- 六、实验结果、分析和结论(误差分析与数据处理、成果总结等。其中,绘制曲线图时必 须用计算纸或程序运行结果、改进、收获) 通过本次实验我掌握了简单ARM汇编指令的使用方法和对循环的控制,及使用 ldm/stm,b,bl等指令完成较为复杂的存储区访问和程序分支。加强了对CPSR的认识, 初步掌握msr/mrs指令实现ARM处理器工作模式的切换。-8- 注教师必须按照上述各项内容严格要求,认真批改和评定学生成绩。

注意事项

本文(arm汇编指令存储区访问及程序分支)为本站会员(文矿工)主动上传,蚂蚁文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知蚂蚁文库(发送邮件至2303240369@qq.com或直接QQ联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们


网站客服QQ:2303240369

copyright@ 2017-2027 mayiwenku.com 

网站版权所有  智慧蚂蚁网络

经营许可证号:ICP备2024020385号



收起
展开