全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ARM嵌入式汇编语言程序设计重点实验目的l 熟悉ARM微处理器指令系统;l 学习ARM嵌入式汇编程序设计的编程重点。实验设备l 硬件:PC机。l 软件:ADS1.2集成开发环境,Windows 2000/XP/2003。实验内容l 了解多分支程序的编写方法;l 掌握ARM程序的运行和调试。实验原理(1)Arm 体系结构3种执行流程1 顺序执行:在正常执行过程中,每执行一条ARM指令,程序计数器(PC)的值加4个字节;每执行一条Thumb指令,程序计数器 (PC)加2个字节。整个过程按顺序执行。2 跳转执行:程序可以跳转到特定的地址标号处执行,或者跳转到特定的子程序处执行。3 异常中断执行:在进入异常中断处理程序时,要保存被中断程序的执行现场,从异常中断处理程序退出时,要恢复被中断程序的执行现场。 (2)跳转表多分支结构是程序中常见的结构,若给出调用号来调用子程序,一般用查表方法,查到子程序的地址,转到相应子程序。注意:读跳转表时不要超过表的末端,检查超限是必需的。例如:BL JUMPTABLEJUMPTABLE ADR R1,SUBTABLE CMP R0,#SUBMAX ;检查超限 BHI stop ;若超限,则程序结束 LDR PC,R1,R0,LSL #2;否则跳转到表中stop MOV R0,#0X18 LDR R1,=0X20026SWI 0x123456SUBTABLE DCD SUB0 ;子程序表入口 DCD SUB1 DCD SUB2实验参考程序利用跳转表实现多分支转移。AREA JUMP,CODE,READONLY;设置本段程序的名称(JUMP)及属性num EQU 2 ;跳转表中的子程序个数 ENTRY ;程序执行的入口点START ;设置3个参数,然后调用子程序arithfunc,进行算术运算 MOV R0,#0 MOV R1,#3 MOV R2,#2 BL arithfunc ;调用子程序arithfuncSTOP ;调用angel_SWIreason_ReportException,从应用程序中退出 MOV R0,#0X18 LDR R1,=0X20026 SWI 0x123456arithfunc ;子程序arithfunc入口点 CMP R0,#num;判断选择子程序的参数是否在有效范围之内 MOVHS PC,LR ADR R3,JumpTable;读取跳转表的基地址 LDR PC,R3,R0,LSL #2;根据参数R0的值跳转到相应的子程序;跳转表JumpTable中保存了各个子程序的地址, 在这里有两个子程序DoAdd和DoSub;当参数R0为0时上面的代码将选择DoAdd;当参数R0为1时上面的代码将选择DoSubJumpTable DCD DoAdd DCD DoSubDoAdd ;子程序DoAdd执行加法操作 ADD R0,R1,R2 MOV PC,LRDoSub 子程序DoSub执行减法操作 SUB R0,R1,R2 MOV PC,LR END;结束汇编实验思考题1. 修改下列C程序段代码为ARM汇编程序段代码。 do x-; while(x0); 这里设x存放在R0 中(x为无符号整数)DOWHILE_L1 ADD R0,R0,#-1 ; 循环体,x-DOWHILE_L2 MOVS R0,R0 ; R0 = R0,并影响条件码标志 BNE DOWHILE_L1 ; 若R0不为0(即x不为0),则继续循环DOWHILE_END NOP 2. 编写一简单ARM汇编程序段,实现1+2+100的运算。 AREA EXAMPLE1, CODE,READONLY ;定义一个代码段,名称为EXAMPLE1 ENTRY ;入口 MOV R0,#0 ;给R0赋值为0 MOV R1,#0 ;用R1来存放1100的总和,初始化为0START ADD R0,R0,#1 ;用来判断终止的,每次加1 ADD R1,R1,R0 ;从1加到100 CM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 船舶电子技工岗前测试验证考核试卷含答案
- 联碱洗盐工诚信测试考核试卷含答案
- 家禽屠宰加工工10S考核试卷含答案
- 缺血性脑卒中护理课件
- 老年慢性病患者睡眠障碍护理要点
- 脑血管狭窄患者居住环境优化与护理支持
- 感冒中医起居调护常规
- 数字认知训练:养老护理员辅助老人数字记忆与计算能力
- 胃结石患者心理护理:如何缓解焦虑情绪
- 新型储能材料的电化学性能研究
- 2025年宜昌市市直机关公开遴选公务员40人备考考试题库附答案解析
- 2025年国元农业保险股份有限公司安徽分公司校园招聘40人笔试参考题库附带答案详解
- 幼儿园大班数学活动《学习解答口报减法应用题》课件
- 2025年河南省西学中考试试题及答案
- 侵权责任法自考试题及答案
- 2025秋形势与政策课件-践行多边主义完善全球治理
- 年轻干部数字化能力提升心得体会
- 景观灯防汛预案范文
- 学堂在线 大数据系统基础 章节测试答案
- 智慧应急管理系统创新创业项目商业计划书
- 矿山救护职业病防治课件
评论
0/150
提交评论