第3章ARM指令系统(第二版).pptVIP

  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文档。上传文档
查看更多
第3章ARM指令系统(第二版)

第6章基本输入输出接口技术 第3章嵌入式处理器指令系统 本章以流行ARM处理器为例介绍嵌入式微处理器的指令系统 ,主要介绍ARM微处理器的寻址方式以及ARM指令集、Thumb和Thumb-2指令集。 本章主要内容 3.1 ARM指令分类及指令格式 ARM指令集特点: ARM使用标准的、固定长度的32位指令格式 所有ARM指令都使用4位的条件编码来决定指令是否执行,以解决指令执行的条件判断 ARM微处理器的指令集是加载/存储型的,即指令集仅能处理寄存器中的数据 ARM指令分类 指令分类(6类) ARM微处理器的指令集可以分为分支指令、数据处理指令、程序状态寄存器(CPSR)处理指令、加载/存储指令、协处理器指令和异常产生指令。 ARM指令格式 ARM指令使用的基本格式如下: opcode{cond}{S} Rd,Rn{,op2 } 注: 其中 中为不可省,{ }可省略。 Opcode、cond与S之间没有分隔符,S与Rd之间用空格隔开。 指令中的条件域(1) 当处理器工作在ARM状态时,几乎所有的指令均根据CPSR中条件码的状态和指令的条件域有条件的执行。 当指令的执行条件满足时,指令被执行,否则指令被忽略。 每一条ARM指令包含4位的条件码,位于指令的最高4位[31:28]。 详见下表 指令中的条件域(2) ARM指令中常用的操作数符号 “#”—立即数符号 “#”符号表示立即数,其中后可以是二进制数,也可以是十进制数或十六进制数 “0x”—十六进制符号 “0x”后面的数据(每位可以是0-9,A-F)表示十六进制数,如0xFFFF “!”—更新基址寄存器符号 表示指令在完成操作后最后的地址应该写入基址寄存器 “-”—指示寄存器列表范围符号 表示多个连续寄存器 ,如R0-R7表示寄存器共8个寄存器:R0,R1,R2,R3,R4,R5,R6和R7。即含义“从…到…” ARM指令中的移位操作符 3.2 ARM指令的寻址方式 定义 所谓寻址方式就是处理器根据指令中给出的地址信息来寻找物理地址的方式。 寻址方式种类 目前ARM指令系统支持如下7种常见的寻址方式。 立即寻址,寄存器寻址,寄存器间接寻址 基址加变址寻址,相对寻址,堆栈寻址 块拷贝(多寄存器)寻址 立即寻址 寄存器寻址 寄存器寻址是利用寄存器中的数值作为操作数寻址的一种方式,此方式执行效率较高,经常被各种处理器采用。 例如: ADD R0,R1,R2 寄存器间接寻址 寄存器间接寻址是以寄存器中的值作为操作数的地址,而操作数本身存放在存储器中,用于间接接寻址的寄存器必须用[ ]括起来。 例如:ADD R0,R1,[R2] LDR R0,[R1] 基址加变址寻址 基址加变址寻址是将寄存器(该寄存器一般称作基址寄存器)的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。 例如:LDR R0,[R1,#4] LDR R0,[R1,#4]! LDR R0,[R1] ,#4 相对寻址 相对寻址以程序计数器PC的当前值为基地址,指令中的地址标号作为偏移量,将两者相加之后得到操作数的有效地址。 例如: BL Subroutine_A ;跳转到子程序Subroutine_A处执行 …… Subroutine_A …… MOV PC,LR;从子程序返回 堆栈寻址 堆栈是一种数据结构,按先进后出(First In Last Out,FILO)的方式工作,使用堆栈指针专用寄存器指示当前的操作位置,堆栈指针总是指向栈顶。 堆栈的生成方式 : 满递增堆栈 满递减堆栈 空递增堆栈 空递减堆栈 块拷贝寻址 块拷贝寻址又称多寄存器寻址,采用多寄存器寻址方式,一条指令可以完成多个寄存器值的传送。 例如:LDMIA R0,{R1,R2,R3,R4} 3.3 ARM指令集 3.3.1 数据处理指令 3.3.2 程序状态指令 程序状态指令用于在程序状态寄存器和通用寄存器之间传送数据。 MRS—程序状态寄存器到通用寄存器的数据传 送指令 例如:MRS R0,CPSR;传送CPSR的内容到R0 MSR—通用寄存器到程序状态寄存器的数据传送指令 例如:MSR

文档评论(0)

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

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

1亿VIP精品文档

相关文档