- 1、本文档共79页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ARM嵌入式体系结构与接口技术第3章 ARM的指令系统 第1章 嵌入式系统基础知识 第2章 ARM技术概述 第3章 ARM的指令系统 第4章 ARM汇编语言程序设计 第5章 ARM Realview MDK集成开发环境 第6章 GPIO编程 第7章 ARM异常中断处理及编程 第8章 串行通信接口 第9章 存储器接口 第10章 定时器 第11章 A/D转换器 第12章 LCD接口设计 第13章 温度监测仪开发实例 3.1 ARM处理器的寻址方式 3.2 ARM处理器的指令集 3.3 小结 3.4 思考与练习 ARM指令集可以分为: 跳转指令、 数据处理指令、 程序状态寄存器传输指令、 Load/Store指令、 协处理器指令 异常中断产生指令。 根据使用的指令类型不同,指令的寻址方式分为数据处理指令寻址方式和内存访问指令寻址方式。 3.1.1 数据处理指令寻址方式 数据处理指令的基本语法格式如下: opcode {cond} {S} Rd,Rn,shifter_operand 其中,shifter_operand有11种形式 数据处理指令寻址方式分类: (1)立即数寻址方式; (2)寄存器寻址方式; (3)寄存器移位寻址方式。 3.1.1 数据处理指令寻址方式 1.立即数寻址方式 指令中的立即数是由一个8bit常数移动4bit偶数位得到的 下面列举了一些有效的立即数: 0xFF、0x104、0xFF0、0xFF00、0xFF000、0xFF000000、0xF000000F 下面是一些无效的立即数: 0x101、0x102、0xFF1、0xFF04、0xFF003、0xFFFFFFFF、0xF000001F 应用立即数的指令: MOV R0,#0 ;送0到R0 ADD R3,R3,#1 ;R3的值加1 CMP R7,#1000 ;R7的值和1000比较 BIC R9,R8,#0xFF00 ;将R8中8~15位清零,结果保存在R9中 3.1.1 数据处理指令寻址方式 2.寄存器寻址方式 寄存器的值可以被直接用于数据操作指令,这种寻址方式是各类处理器经常采用的一种方式,也是一种执行效率较高的寻址方式,如: MOV R2,R0 ;R0的值送R2 ADD R4,R3,R2 ;R2加R3,结果送R4 CMP R7,R8 ;比较R7和R8的值 3.1.1 数据处理指令寻址方式 3.寄存器移位寻址方式 寄存器的值在被送到ALU之前,可以事先经过桶形移位寄存器的处理。预处理和移位发生在同一周期内,所以有效地使用移位寄存器,可以增加代码的执行效率。 ADD R2,R0,R1,LSR #5 MOV R1,R0,LSL #2 RSB R9,R5,R5,LSL #1 SUB R1,R2,R0,LSR #4 MOV R2,R4,ROR R0 3.1.2 内存访问指令寻址方式 内存访问指令的寻址方式可以分为以下几种。 (1)字及无符号字节的Load/Store指令的寻址方式; (2)杂类Load/Store指令的寻址方式; (3)批量Load/Store指令的寻址方式; (4)协处理器Load/Store指令的寻址方式。 3.1.2 内存访问指令寻址方式 1.字及无符号字节的Load/Store指令的寻址方式 LDR|STR{cond}{B}{T} Rd,addressing_mode 其中addressing_mode共有9种寻址方式 “!”表示完成数据传输后要更新基址寄存器。 3.1.2 内存访问指令寻址方式 2.杂类Load/Store指令的寻址方式 LDR|STR{cond}H|SH|SB|D Rd,addressing_mode 使用该类寻址方式的指令包括(有符号/无符号)半字Load/Store指令、有符号字节Load/Store指令和双字Load/Store指令。 该类寻址方式分为6种类型 3.1.2 内存访问指令寻址方式 3.批量Load/Store指令寻址方式 批量Load/Store指令将一片连续内存单元的数据加载到通用寄存器组中或将一组通用寄存器的数据存储到内存单元中。 批量Load/Store指令的寻址模式产生一个内存单元的地址范围,指令寄存器和内存单元的对应关系满足这样的规则,即编号低的寄存器对应于内存中低地址单元,编号高的寄存器对应于内存中的高地址单元。 LDM|STM{cond}addressing_mode Rn{!},registers^ 3.1.2 内存访问指令寻址方式 4.堆栈操作寻址方式 根据不同的寻址方式,将堆栈分为以下4种 Full栈:堆栈指针指向栈顶元素(last us
文档评论(0)