- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
在本章中,将介绍ARM指令分类以及各类指令对应的寻址方式。 * 2.1 ARM指令集概要介绍 在本节中,将介绍ARM指令相关的一些基本概念,包括指令的分类、指令的一般编码格式以及ARM指令中的条件码。 * 2.1.1 ARM指令的分类 ARM指令集可以分为跳转指令、数据处理指令、程序状态寄存器(PSR)传输指令、Load/Store指令、协处理器指令和异常中断产生指令6类。 * 2.1.2 ARM指令的一般编码格式 ARM指令字长为固定的32位。一条典型的ARM指令编码格式如下: 31 28 27 25 24 21 20 19 16 15 12 11 8 7 0 其中的符号及参数说明如下。 opcode:指令操作符编码。 cond:指令执行的条件编码。 S:决定指令的操作是否影响CPSR的值。 Rd:目标寄存器编码。 Rn:包含第1个操作数的寄存器编码。 shifter_operand:表示第2个操作数。 * cond 0 0 1 opcode S Rn Rd shifter_operand 2.1.3 ARM指令的条件码域 条件码共有16个,各条件码的含义和助记符如表2.1所示。可条件执行的指令可以在其助记符的扩展域加上条件码助记符,从而在特定的条件下执行。 参见教材P23 * 2.2 ARM指令的寻址方式 ARM指令的寻址方式有以下几种,分别进行讨论: 数据处理指令的操作数的寻址方式。 字及无符号字节的Load/Store指令的寻址方式。 杂类Load/Store指令的寻址方式。 批量Load/Store指令的寻址方式。 协处理器Load/Store指令的寻址方式。 * 2.2.1 数据处理指令的操作数的寻址方式 通常数据处理指令的格式如下所示: ? opcode{cond}{S} Rd,Rn,shifter_operand ? 其中的符号及参数说明如下。 opcode:是指令助记符,如ADD表示算术加操作指令。 {cond}:表示指令执行的条件。 {S}:决定指令的操作是否影响CPSR的值。 Rd:表示目标寄存器。 Rn:表示包含第1个操作数的寄存器。 shifter_operand:表示第2个操作数。 * 2.2.1 数据处理指令的操作数的寻址方式 shifter_operand通常有下面3种格式。 (1) 立即数方式。 (2) 寄存器方式。 (3) 寄存器移位方式。 数据处理指令操作数的具体寻址方式有下面11种。 #immediate Rm Rm, LSL #shift_imm Rm, LSL Rs Rm, LSR #shift_imm Rm, LSR Rs Rm, ASR #shift_imm Rm, ASR Rs Rm, ROR #shift_imm Rm, ROR Rs Rm, RRX * 2.2.2 字及无符号字节的Load/Store指令的寻址方式 各种类型的Load/Store指令的寻址方式由两部分组成。一部分为一个的基址寄存器;另一部分为一个地址偏移量。基址寄存器可以为任一个通用寄存器;地址偏移量可以有以下3种格式: 立即数。 寄存器。 寄存器及一个移位常数。 同样,寻址方式的地址计算方法有如下3种: 偏移量方法。 事先更新方法。 事后更新方法。 * 2.2.2 字及无符号字节的Load/Store指令的寻址方式 LDR指令的语法格式如下所示: ?LDR{cond}{B} {T}Rd,address_mode 其中,address_mode表示第2个操作数的内存地址,共有如下9种格式: [Rn, #+/–offset_12] [Rn, +/–Rm] [Rn, +/–Rm,shift#shift_imm] [Rn, #+/–offset_12]! [Rn, +/–Rm]! [Rn, +/–Rm,shift#shift_imm]! [Rn], #+/–offset_12 [Rn], +/–Rm [Rn], +/–Rm,shift#shift_imm * 2.2.3 杂类Load/Store指令的寻址方式 这里所说的杂类Load/Store指令,包括操作数为半字(无符号数或带符号数)数据的Load/Store指令;操作数为带符号的字节数据的Load 指令;双字的Load/Store指令。这类指令的语法格式为: ?LDR|STR{cond}H|SH|SB|D Rd,addressing_mode ?其中,addressing_mode是指令中内存单元的寻址方式,具体有以下6种格式: [Rn, #+/–offset_8] [Rn, +/–
您可能关注的文档
- 单元七古代西方人文精神的发展技术总结.ppt
- 医用化学之芳香烃分析报告.ppt
- 单元三2行李托运服务技术总结.ppt
- 医用镁合金矿化磷灰石涂层分析报告.doc
- 哈大线桥梁路基混凝土冻融防护试验工程施工方案技术总结.ppt
- 单元三发电厂主要热力辅助设备技术总结.ppt
- coreldraw_x4基础教程第09章总结.ppt
- 单元三苹果技术总结.doc
- 危重病人的识别和监护技术总结.ppt
- 危重病人的饮食护理技术总结.ppt
- 小学科学:ESP8266智能插座电路原理与动手实践研究教学研究课题报告.docx
- 《金融开放浪潮下我国多层次监管体系构建与创新研究》教学研究课题报告.docx
- 区域教育质量监测中人工智能应用的数据质量分析与优化策略教学研究课题报告.docx
- 《金融科技监管中的数据治理与合规性要求》教学研究课题报告.docx
- 《3D打印技术在航空航天领域中的多材料制造与复合材料应用》教学研究课题报告.docx
- 《绿色金融发展中的政府职能与市场机制研究》教学研究课题报告.docx
- 《植物工厂多层立体栽培光环境调控技术对植物生长发育节律的调控机制探讨》教学研究课题报告.docx
- 销售团队年度业绩总结.docx
- 银行风险管理与金融危机防范.docx
- 银行网络攻击预警与快速响应机制.docx
文档评论(0)