- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4ARM指令系统(合成)的
第四章 ARM指令系统概述
本章系统的介绍最常使用的ARM7TDMI-S内核支持的ARM V4指令集中的基本指令。ARM指令由基本指令和派生出的一些新的指令构成,但使用方法与基本指令类似。Thumb指令集作为ARM指令集的一个子集,其使用方法与ARM指令集类似,且一般不需要程序员手动编写,本章不作描述。
ARM指令集分为六类:分支指令、数据处理指令、程序状态寄存器、LOAD/STORE指令、协处理器指令、异常中断指令。
1.ARM分支指令
指令助记符 功能描述 B 分支指令 BX 带状态切换的分支指令 BL 带连接的分支指令
2.ARM的数据处理指令
这类指令能够完成数据的算术运算和逻辑操作,它的典型特征是两个操作数经过运算,产生一个结果。
类别 指令助记符 功能描述 算术运算类 ADD 加法指令 ADC 带进位的加法指令 SUB 减法指令 SBC 带借位的减法指令 RSB 逆项减法指令 RSC 带借位的逆项减法指令 逻辑运算类 AND 逻辑与指令 ORR 逻辑或指令 EOR 逻辑异或指令 BIC 位清除指令 比较类 CMP 比较指令 CMN 取反比较指令 测试类 TST 位测试指令 TEQ 相等测试指令 传送类 MOV 数据传送指令 MVN 数据取反传送指令 乘法类 MUL 32位乘法指令 MLA 32位乘加指令 UMULL 64位无符号乘法指令 UMLAL 64位无符号乘加指令 SMULL 64位有符号乘法指令 SMLAL 64位有符号乘加指令
3.ARM异常处理指令
指令助记符 功能描述 SWI 软件中断指令
4.ARM协处理器基本指令表
指令助记符 功能描述 CDP 协处理器数据操作指令 LDC 协处理器数据加载指令ARM处理器寄存器到协处理器寄存器的数据传送指令协处理器寄存器到ARM处理器寄存器的数据传送指令协处理器数据存储指令分支指令ARM程序设计中,有两种方法可以实现程序的跳转:使用专门分支指令或直接向程序计数器PC写入跳转地址值。使用分支指令可以实现在当前指令向前或向后32M字节的地址空间的任意跳转;直接向程序计数器PC4GB的地址空间中的任意跳转。
ARM采用流水线结构,当发生非顺序执行时,指令流水线清空。
在含有Thumb指令Thumb指令Thumb指令Thumb指令(Branch) 分支B{条件} 目标地址是最简单的分支 B 指令,ARM 处理器跳转到给定的地址继续执行。分支指令中实际的是相对PC值R15 的值的偏移量而不是绝对地址。偏移量由编器计算表示的有效偏移为 26 位(前后32MB的地址空间)。由汇编器来计算是 24 位有符号数,左移两位后有符号扩展为 32 位。B Label ;程序无条件跳转到标号Label处执行,PC:= Label
BEQ Label3 ;程序当 CPSR中Z=1时,跳转到Labe3处执行,PC:= Label3
2.BL (Branch with Link) 带连接的分支
BL{条件} BL也是分支指令在分支, 的内容装载14寄存器 中。MOV PC,R14实现子程序返回。 Label0 ;程序跳转到Label0处执行,R14:=PC-4,且PC:=Label0
BLCC Label1 ;当 CPSR中Z=1时,跳转到标号Label1处执行
;同时将当前的PC值保存到R14中
MOV PC,LR ;返回
3.BX (Branch and Exchange)带状态切换的分支指令
语句格式:
BX{条件} BX指令跳转到指令中所指定的目标地址,目标地址处的指令既可以是ARM指令,也可以是Thumb指令。Thumb指令集的指令Thumb,Rm[0]=0表示ARM。
使用示例:
BXLE R3
4.2 ARM的数据处理指令
数据的算术运算指令和数据处理指令的特征是两个操作数一起经过运算,产生一个结果,指令执行影响标志寄存器。数据的算术运算要求有两个操作数,规定一个操作数的寻址方式必须是寄存器类型,另一个可以是寄存器类型、立即数类型或者移位寻址方式。
ARM的数据运算与数据处理指令包括:算术运算类、逻辑运算类、比较类、测试类、传送类和乘法(Multiplication)指令。
1.算术运算类指令
(1)ADD : (Addition)加法
语句格式:
ADD{条件}{S} Rd, Rn, op2
语句功能:
ADD 的作用是把两个操作数相加,结果放置到目的寄存器Rd中。Rn是一个寄存器,op2可以是一个寄存器、被移位的寄存器、或一个立即值。即Rd:= Rn + op2
使用示例:
您可能关注的文档
- 31第五章 数链层b的.ppt
- 32.二叉树与最优二驳逆树.ppt
- 32.飞上太空的特殊车乃客.ppt
- 32位cpu设计报告的.doc
- 32位RISC ARM选型的.doc
- 32位微机01的.ppt
- 32核静音级图形工作的站五大经典应用配置方案.doc
- 32、种子植物分类学的总复习.doc
- 330MW汽轮机疏水系偷某.doc
- 315开关说明书的.doc
- 金融产品2024年投资策略报告:积极适应市场风格,行为金融+机器学习新发现.pdf
- 交运物流2024年度投资策略:转型十字路,峰回路又转(2023120317).pdf
- 建材行业2024年投资策略报告:板块持续磨底,重点关注需求侧复苏.pdf
- 宏观2024年投资策略报告:复苏之路.pdf
- 光储氢2024年投资策略报告:复苏在春季,需求的非线性增长曙光初现.pdf
- 公用环保2024年投资策略报告:电改持续推进,火电盈利稳定性有望进一步提升.pdf
- 房地产2024年投资策略报告:聚焦三大工程,静待需求修复.pdf
- 保险2024年投资策略报告:资产负债匹配穿越利率周期.pdf
- 政策研究2024年宏观政策与经济形势展望:共识与分歧.pdf
- 有色金属行业2024年投资策略报告:新旧需求共振&工业原料受限,构筑有色大海星辰.pdf
文档评论(0)