嵌入式系统设计与开发 教学课件 作者 马文华 主编 邓耀华 汤秀春 胡伟 副主编 3嵌入式系统设计与开发.ppt

嵌入式系统设计与开发 教学课件 作者 马文华 主编 邓耀华 汤秀春 胡伟 副主编 3嵌入式系统设计与开发.ppt

  1. 1、本文档共96页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式系统设计与开发 第3章 ARM指令集 本章提要 3.1 ARM指令集概述 3.2 ARM寻址方式 3.3 ARM指令分类介绍 3.4 Thumb指令集 3.1 ARM指令集概述 ARM微处理器的指令集是加载/存储型的,也即指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存储器的访问则需要通过专门的加载/存储指令来完成。 ARM体系具有ARM和Thumb两种指令集。 ARM指令集主要包括数据处理指令、分支指令、存储器访问指令、程序状态寄存器处理指令、协处理器指令和异常中断产生指令等。 ARM指令的编码格式 ARM指令的条件码域 当处理器工作在ARM状态时,几乎所有的指令均根据CPSR中条件码的状态和指令的条件域有条件的执行。当指令的执行条件满足时,指令被执行,否则指令被忽略。 每一条ARM指令包含4位的条件码,位于指令的最高4位[31:28]。条件码共有16种,每种条件码可用两个字符表示,这两个字符可以添加在指令助记符的后面和指令同时使用。 在16种条件标志码中,只有15种可以使用,如表3.1所示,第16种(1111)为系统保留,暂时不能使用。 指令流水线 指令的执行分3个阶段: 取指(fetch):从存储器中读入指令。 译码(decode):对指令及其用到的寄存器做解码。 执行(execute):从寄存器送出信息,执行移位运算和逻辑运算,并将最后结果写回寄存器。 3.2 ARM寻址方式 1.立即寻址 立即寻址也叫立即数寻址,这是一种特殊的寻址方式, 操作数本身就在指令中给出,只要取出指令也就取到了操作 数。这个操作数被称为立即数,对应的寻址方式也就叫做立 即寻址。 ADD R0,R0,#3; R0←R0+3 MOV R1,#0x18; R1←0x18 2.寄存器寻址 寄存器寻址就是利用寄存器中的数值作为操作数,这种 寻址方式是各类微处理器经常采用的一种方式,也是一种执 行效率较高的寻址方式。 ADD R0,R1,R2; R0←R1+R2 MOV RI,R2; R1←R2 3.寄存器间接寻址 寄存器间接寻址就是以寄存器中的值作为操作数的地 址,而操作数本身存放在存储器中。 LDR R0,[R1] ; R0←[R1] STR R0,[R1] ; [R1]←R0 4.寄存器移位寻址 ARM的移位操作 ARM的移位操作 ARM的移位操作 5.基址变址寻址 基址变址寻址就是将寄存器(该寄存器一般称作基址寄存器)的内 容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。 变址寻址方式常用于访问某基地址附近的地址单元。 LDR R0,[R1,#-8] ; R0←[R1-8],前变址模式 LDR R0,[R1,R2] ; R0←[R1+R2] ,基地加索引寻址 LDR R0,[R1] ,#8; R0←[R1],R1←R1+8,后变址模式 LDR R0,[R1,#4]!; R0←[R1+4], R1←R1+4,自动变址模式 6.多寄存器寻址 采用多寄存器寻址方式,一条指令可以完成多个寄存器 值的传送。这种寻址方式可以用一条指令完成传送最多16个 通用寄存器的值。 LDMIA R0,{R1,R2,R3} ; R1←[R0] ,R2←[R0+4] ,R3←[R0+8] 7.堆栈寻址 8.块拷贝寻址 9.相对寻址 3.3 ARM指令分类介绍 ARM指令根据其功能可分为六类: 数据处理指令(含乘法指令) 分支指令 存储器访问指令 程序状态寄存器处理指令 协处理器指令 异常中断产生指令 数据处理指令 1.数据传送指令 (1)MOV——数据传送指令 指令格式: MOV{条件}{S} 目的寄存器,源操作数 MOV指令可完成从另一个寄存器、被移位的寄存器或将 一个立即数加载到目的寄存器。其中S选项决定指令的操作 是否影响CPSR中条件标志位的值,当没有S时指令不更新 CPSR中条件标志位的值。 指令示例: MOV R0,R1; R0=R1 不影响标志位 MO

您可能关注的文档

文档评论(0)

时间加速器 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档