- 1、本文档共157页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 ARM7TDMI指令系统 本章重点: ⑴ ARM7TDMI指令系统介绍; ⑵ ARM指令集; ⑶ Thumb指令集。 另外,本章指令编码格式、指令汇编格式请直接看参考书。 3.1 ARM7TDMI指令系统概述 3.1.1 ARM7TDMI指令系统概述 ARM7TDMI支持指令长度为32位的ARM指令集和指令长度为16位的Thumb指令集。从功能上讲,Thumb指令集的主要部分是32位ARM指令集主要部分的一个子集。 3.1.2 ARM指令集概述 所有ARM指令长度均为32位,在存储器中以字边界对齐存储。因此在ARM状态,指令地址的最低2位总是为0,即bit[1:0]=00。所有的ARM指令,指令中凡涉及到程序地址操作数的,最低2位均被忽略,只有BX指令除外。BX指令用最低位确定分支处的代码,如果bit[0]=1,则分支到Thumb代码;如果bit[0]=0,则分支到ARM代码。 ⒈ ARM指令分组 ⑴ 分支指令 ⑵ 数据处理指令 ⑶ 状态寄存器访问指令 ⑷ 单个寄存器装入或存储指令 ⑸ 块数据装入或存储指令 ⑹ 协处理器指令 ⒉ ARM指令的能力 ⑴ 条件执行 ⑵ 寄存器访问 ⑶ 对在线式桶形移位器(barrel shifter)的访问 3.1.3 ARM指令集全部指令编码及条件域 ⒈ ARM指令集全部指令编码格式 ARM指令集全部指令编码格式见图3.1。 (见参考书P47) ⒉ 指令编码中的条件域 参见图3.1,指令编码格式中的bit[31:28]称为条件域。 在ARM状态,所有指令都要根据CPSR中的条件码标志和指令中条件域指定的内容,有条件地执行。指令中条件域bit[31:28]确定在哪一种情况下这条指令被执行。如果C、N、Z和V标志的状态满足指令中条件域编码要求,指令被执行;否则指令被忽略。 有15种可能的条件,每一种由2个字符代替,称为条件码助记符后缀(简称条件码助记符),可以附加在指令助记符后,如表3.1所示。 (见参考书P48) 例如在汇编语言中,分支指令B如果附加条件码助记符后缀为EQ,写作BEQ,表示相等(即Z=1)这条指令才执行;如果Z 1,则这条指令不被执行,指令被忽略。 3.1.4 Thumb指令集概述 所有Thumb指令长度均为16位,以半字边界对齐存储在存储器中。由于指令以半字边界对齐存储,在Thumb状态,一条指令的地址最低位总是为0,即bit[0]=0。这一位在所有涉及到地址操作数的指令中被忽略,但分支并且转换状态指令BX除外。 ⒈ Thumb指令分组 ⑴ 分支指令 ⑵ 数据处理指令 ⑶ 状态寄存器的访问 ⑷ 单个寄存器装入或存储指令 ⑸ 多寄存器装入和存储指令 ⑹ 协处理器指令 ⒉ Thumb指令能力 ⑴ 条件执行 只有Thumb的条件分支指令,才能够根据CPSR中的条件码标志,有条件地执行。而ARM全部指令均能条件执行。 ⑵ 寄存器访问 ⑶ 访问桶形移位器 3.1.5 Thumb指令集全部指令编码 由图3.2可知(见参考书P50),全部指令均为等长的16位,因此在存储器保存一条指令占2字节空间,保存指令的地址必须以半字(2字节)边界对齐。指令中各个域的具体含义在3.3节中详细讲述。 3.2 ARM指令集 本节讲述的内容和先后次序如下: 分支并且转换状态指令(BX); 分支、分支并且连接指令(B、BL); 数据处理指令; 程序状态寄存器传送指令(MRS、MSR); 乘、乘累加指令(MUL、MLA); 长乘、长乘累加指令(MULL、MLAL); 单个数据传送指令(LDR、STR); 半字、带符号字节/半字传送指令(LDRH、STRH、LDRSB、LDRSH); 块数据传送指令(LDM、STM); 单个数据交换指令(SWP); 软件中断指令(SWI); 协处理器介绍; 协处理器数据操作指令(CDP); 协处理器数据传送指令(LDC、STC); 协处理器寄存器传送指令(MRC、MCR); 未定义指令。 指令编码格式中的bit[31:28]为条件域。所有指令都要根据CPSR中的条件码标志和指令中的条件域指定的内容,有条件地执行。为简单起见,以下对各指令介绍时不再重复这部分内容。 3.2.1 分支并且转换状态指令(BX) 分支并且转换状态指令BX,在指令中指定了一个Rn寄存器,将Rn内容拷贝到PC,同时使PC[0]=0;把Rn[0]的值送CPSR的T位。如果Rn[0]=1,则T=1,将处理器状态转换成Thumb状态,把目标地址处的代码解释为Thumb
您可能关注的文档
最近下载
- 2023年蚌埠市从优秀村(社区)干部中考试录用乡镇机关公务员加分考试真题及答案.pdf VIP
- 【教学创新大赛】《数字信号处理》教学创新成果报告.docx
- 学习领会二十届中央纪委四次全会上重要讲话心得体会.docx VIP
- 各类骨折病人的体位护理.pptx VIP
- 2023年标准化知识题库带答案.pdf
- 黑龙江 2023年肿瘤放射治疗学主治医师考试:肿瘤放射治疗学专业知识真题模拟汇编(共769题).doc VIP
- 浅谈网络购物环境下消费者权益的保护.docx VIP
- 2024年湖南交通职业技术学院单招职业技能测试题库及答案解析.docx VIP
- 9年级体育教案.pdf VIP
- 《田间试验统计》课件——项目三 试验数据调查取样.pptx VIP
文档评论(0)