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

嵌入式系统基础及应用第三章2.ppt

  1. 1、本文档共97页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARM体系结构编程 课程内容复习(1) 1.Arm处理器的工作状态 Arm状态和Thumb状态 2.Arm处理器的工作模式 7种工作模式 工作模式的区别:不同工作模式下的程序能访问的系统资源(CPU寄存器)不同。 改变工作模式的方法:软件改变CPSR的模式位、异常中断的发生 工作模式的最大用途:用于处理不同的中断请求 课程内容复习(2) 3. Arm的寄存器组织 课程内容复习(2) 课程内容复习(3) 4. Arm的异常中断、中断向量表、中断处理、中断引起的工作模式的改变、中断的作用。 Arm存储器格式 ARM体系结构将存储器看作是从零地址开始的字节的线性组合 ARM体系结构可以用两种方法存储字数据,称之为大端格式和小端格式 大端格式:字数据的高字节存储在低地址中,字数据的低字节存储在高地址中。 小端格式:字数据的高字节存储在高地址中,字数据的低字节存储在低地址中。 主要内容 1.Arm指令概要介绍 2.Arm指令的寻址方式 3.Arm指令系统 1.Arm指令概要介绍 从四个方面进行描述 1.1 Arm指令的分类 1.2 典型的Arm指令的语法格式 1.3 Arm指令的条件执行 1.4 Arm指令的一般编码格式 1.1Arm 指令的分类 1 跳转指令 2 数据处理指令 3 乘法指令与乘加指令 4 程序状态寄存器访问指令 5 加载/存储指令 6 批量数据加载/存储指令 7 数据交换指令 8 移位操作指令 9 异常产生指令 10 协处理器指令 1.2典型的Arm指令的语法格式 一条典型的Arm指令语法格式为 例子 ADDEQS R0,R1,#3 1.3Arm指令的条件执行 大多数Arm指令都可以条件执行,也就是根据CPSR中的条件标志位决定是否执行该指令。当条件满足时该指令执行,条件不满足时被当作一条NOP指令 可以条件执行的指令可以在其助记符的扩展域上加上条件码助记符,从而在特定的条件下执行 ARM指令的条件执行 if (ab) a++; else b++; CMP R0, R1 ADDHI R0, R0, #1 ADDLS R1, R1, #1 1.4 Arm指令的编码格式 编码格式: 机器指令格式 在存储器中的指令格式 ARM指令集——第2个操作数 ARM指令集——第2个操作数 ARM指令集——第2个操作数 ARM指令集——第2个操作数 ARM指令集——第2个操作数 ARM指令集——第2个操作数 主要内容 1.Arm指令概要介绍 2.Arm指令的寻址方式 3.Arm指令系统 2. Arm 指令的寻址方式 立即寻址 寄存器寻址 寄存器间接寻址 基址变址寻址 寄存器偏移寻址 相对寻址 多寄存器寻址 堆栈寻址 1.寻址方式-立即寻址 立即寻址也叫立即数寻址 这是一种特殊的寻址方式,操作数本身就在指令中给出(或根据指令可直接计算而得),只要取出指令也就取到了操作数。这个操作数被称为立即数,对应的寻址方式也就叫做立即寻址 。 例子 ADD R0,R0,#1 ;R0←R0+1 ADD R0,R0,#0x3f ;R0←R0+0x3f 2.寻址方式-寄存器寻址 寄存器寻址就是利用寄存器中的数值作为操作数 这种寻址方式是各类处理器经常采用的一种方式,也是一种执行效率较高的寻址方式 例子 ADD R0,R1,R2 ;R0←R1+R2 3.寻址方式-寄存器间接寻址 寄存器间接寻址就是以寄存器中的值作为操作数的地址,而操作数本身存放在存储器中 例子 ADD R0,R1,[R2] ;R0←R1+[R2] 将R2中的数值作为地址,取出此地址中的数据与R1中的数据相加,结果存在R0里 4.寻址方式-基址变址寻址 基址变址寻址就是将寄存器(该寄存器一般称作基址寄存器)的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。 基址变址寻址方式常用于访问某基地址附近的地址单元。 例子 LDR R0,[R1,#4] ;R0←[R1+4] 将R1中的数值加4作为地址,取出此地址的数值保存在R0中 LDR R0,[R1,#4]! ;R0←[R1+4]、R1←R1+4 LDR R0,[R1] ,#4 ;R0←[R1]、R1←R1+4 LDR R0,[R1,R2] ;R0←[R1+R2] 5.寻址方式-寄存器偏移寻址 ARM指令集特有的寻址方式,当第二个操作数是寄存器偏移方式时,第二个寄存器操作数在与第一个操作数结合前,选择进行移位操作。 例子: MOV R0, R2, LSL #3; R2的值左移3位,结果放入R0 可选择的移位操作如下: LSL:逻辑左移,寄存器中字的低端空出的位补0 LSR:逻辑右移,寄存器中字的高端空出的位补0 6.寻址方式-相对寻址

文档评论(0)

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

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

1亿VIP精品文档

相关文档