ARM嵌入式系统原理及应用教程

ARM嵌入式系统原理及应用教程

ID:45032253

大小:1.16 MB

页数:140页

时间:2019-11-08

ARM嵌入式系统原理及应用教程_第1页
ARM嵌入式系统原理及应用教程_第2页
ARM嵌入式系统原理及应用教程_第3页
ARM嵌入式系统原理及应用教程_第4页
ARM嵌入式系统原理及应用教程_第5页
资源描述:

《ARM嵌入式系统原理及应用教程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、主讲内容第1章嵌入式系统概述第2章ARM微处理器概述与编程模型第3章ARM9指令系统第4章嵌入式程序设计基础第5章嵌入式内部可编程模块第6章嵌入式接口技术应用第7章软件开发环境第3章ARM9指令系统ARM处理器的寻址方式ARM指令集Thumb指令集3.1ARM处理器的寻址方式寻址方式是处理器根据指令中给出的地址信息来寻找物理地址的方式。目前ARM指令系统支持8种寻址方式。寄存器寻址立即寻址寄存器间接寻址变址寻址寄存器移位寻址多寄存器寻址堆栈寻址相对寻址3.1.1寄存器寻址寄存器寻址就是利用寄存器中的内容作为操作数,寄存器本身就是操作数地址。

2、这种寻址方式是各类微处理器经常采用的一种方式,也是一种执行效率较高的寻址方式。例如指令:MOVR2,R3;R2←R3R3中的内容赋给R2ADDR2,R3,R4;R2←R3+R4R3和R4中的内容相加,结果赋给R20xAA0x55R3R2MOVR2,R30xAA3.1.2立即寻址立即寻址也叫立即数寻址,这是一种特殊的寻址方式,操作数没有存储在寄存器或存储器中,而是包含在指令的操作码中,只要取出指令也就取到了操作数。这个操作数被称为立即数,对应的寻址方式也就叫做立即寻址。例如指令:MOVR0,#0xFF000;将立即数0xFF000装入R0寄存

3、器ADDR1,R1,#0x7f;R1←R1+0x7f在以上两条指令中,第二个源操作数即为立即数,要求以“#”为前缀,对于以十六进制表示的立即数,还要求在“#”后加上“0x”。0x55R0MOVR0,#0xFF00程序存储MOVR0,#0xFF000xFF00从代码中获得数据3.1.3寄存器间接寻址寄存器间接寻址就是以寄存器中的内容作为操作数的地址,而操作数本身存放在存储器中。例如指令:LDRR1,[R2];R1←[R2]STRR1,[R2];[R2]←R1第一条指令将以R2中的内容为地址,将该地址中的数据传送到R1中。第二条指令将R1中的内

4、容传送到以R2中的内容为地址的存储器中。0x55R1R20x400000000xAA0x40000000LDRR1,[R2]0xAA3.1.4变址寻址变址寻址就是将寄存器(该寄存器一般称作基址寄存器)的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。变址寻址方式常用于访问某基地址附近的地址单元。例如指令:LDRR0,[R1,#8];R0←[R1+8]LDRR0,[R1,#8]!;R0←[R1+8],R1←R1+8LDRR0,[R1],#2;R0←[R1],R1←R1+2LDRR0,[R1,R2];R0←[R1+R2]0x55

5、R0R10x600000000xAA0x60000008LDRR0,[R1,#0x08]0xAA将R1+0x08作为地址装载数据3.1.5寄存器移位寻址寄存器移位寻址是ARM指令集独有的寻址方式,操作数由寄存器的数值进行相应移位而得到;移位的方式在指令中以助记符的形式给出,而移位的位数可用立即数或寄存器寻址方式表示。ARM微处理器内嵌的桶型移位器(BarrelShifter),移位操作在ARM指令集中不作为单独的指令使用,它只能作为指令格式中的一个字段,在汇编语言中表示为指令中的选项。例如,数据处理指令的第2个操作数为寄存器时,就可以加入移

6、位操作选项对它进行各种移位操作。移位操作包括如下6种类型.3.1.5寄存器移位寻址LSL(或ASL)操作格式为:通用寄存器,LSL(或ASL)操作数LSL(或ASL)可完成对通用寄存器中的内容进行逻辑(或算术)的左移操作,按操作数所指定的数量向左移位,低位用零来填充,最后一个左移出的位放在状态寄存器的C位CPSR[29]中,如图3-1所示。其中,操作数可以是通用寄存器,也可以是立即数(0~31)。3.1.5寄存器移位寻址操作示例:MOVR0,R1,LSL#2;将R1中的内容左移4位后传送到R0中,;其中把最后移出的位赋给程序状态寄存器的C位

7、CPSR[29]。31C30291000LSR操作格式为:通用寄存器,LSR操作数LSR可完成对通用寄存器中的内容进行右移的操作,按操作数所指定的数量向右移位,左端用零来填充,最后一个右移出的位放在状态寄存器的C位CPSR[29]中,如图3-2所示。其中,操作数可以是通用寄存器,也可以是立即数(0~31)。3.1.5寄存器移位寻址操作示例:MOVR0,R1,LSR#4;将R1中的内容右移4位后传送到R0中。;其中把最后移出的位赋给程序状态寄存器的C位CPSR[29]。3.1.5寄存器移位寻址31C302910003.1.5寄存器移位寻址RO

8、R操作格式为:通用寄存器,ROR操作数ROR可完成对通用寄存器中的内容进行循环右移的操作,按操作数所指定的数量向右循环移位,右端移出的位填充在左侧的空位处,最后一个右移出的位同时

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。