- 1、本文档共108页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Thumb指令集 Thumb指令集与ARM指令集在以下几个方面有区别: 跳转指令。条件跳转在范围上有更多的限制,转向子程序只具有无条件转移。 数据处理指令。对通用寄存器进行操作,操作结果需放入其中一个操作数寄存器,而不是第三个寄存器。 单寄存器加载和存储指令。Thumb状态下,单寄存器加载和存储指令只能访问寄存器R0~R7。 批量寄存器加载和存储指令。LDM和STM指令可以将任何范围为R0~R7的寄存器子集加载或存储, PUSH和POP指令使用堆栈指针R13作为基址实现满递减堆栈,除R0~R7外,PUSH指令还可以存储链接寄存器R14, POP指令可以加载程序指令PC。 Thumb指令集 Thumb指令集没有包含进行异常处理时需要的一些指令,因此,在异常中断时还是需要使用ARM指令。 这种限制决定了Thumb指令不能单独使用,需要与ARM指令配合使用。 Thumb数据处理指令、存储器访问指令中的加载/存储指令使用方法和ARM指令集中相对应的指令类似。 Thumb指令集 1. PUSH和POP 指令格式: PUSH {低寄存器的全部或其子集} POP {低寄存器的全部或其子集} PUSH低寄存器的全部或其子集,LR} POP {低寄存器的全部或其子集,PC} 这两条指令是栈操作指令,用于在寄存器和堆栈之间进行成组的数据传送,PUSH指令用于把寄存器列表中的寄存器数据推进堆栈;POP指令用于把栈区的数据弹出列表的寄存器中。 Thumb指令集 堆栈指针是隐含的地址基址,Thumb指令中的堆栈是满递减堆栈,堆栈向下增长,堆栈指针总是指向最后入栈的数据。 使用入栈指令PUSH时,每传送一个数据,堆栈指针就自动减4;使用出栈指令POP时,每传送一个数据,堆栈指针就自动加4。 POP {低寄存器的全部或其子集,PC}这条指令引起处理器转移到从堆栈弹出给PC的地址,这通常是从子程序返回,其中LR在子程序开头压进堆栈。 这些指令不影响条件码标志。 Thumb指令集 指令示例: PUSH {R0,R4,R6} ;把R0、R4、R6的数据顺序推进栈区 PUSH {R4-R7,LR} ;把R4、R5、R6、R7、LR顺序入栈 POP {R0,R4,R6} ;把R0、R4、R6的数据弹出栈区 POP {R0-R7,PC} ;恢复现场 Thumb指令集 2. 分支指令 (1)B指令 这是Thumb指令集中唯一的有条件指令。 指令格式为: B{条件} 目标地址 若使用条件,则目标地址必须在当前指令的-256~+256字节范围内。 若指令是无条件的,则目标地址必须在±2KB范围内。 若条件满足或不使用条件,则B指令引起处理器转移到目标地址。 目标地址必须在指定限制内。 Thumb指令集 指令示例: CMP R2,#0x20 ;比较R2和0x20 BNE START ;不相等时,即当Z=0时,则跳转 …… START ADD R3,R4 ;跳转处 Thumb指令集 (2)BL指令 格式为: BL 目标地址 BL指令是分支和链接指令, 将下一条指令的地址复制到R14(链接寄存器), 并引起处理器转移到目标地址, 但目标地址不可以是ARM指令。 BL指令不能转移到当前指令±4MB以外的地址。 Thumb指令集 指令示例: BL START ;分支跳转 ADD R3,R4 ;分支的下一条指令 …… START ADD R0,R1 ;指令 Thumb指令集 (3) BX 格式为: BX 寄存器 BX指令是分支和交换指令,寄存器的地址是目标地址,其中的位[0]不是地址信息。 当寄存器的位[0]为1时,表明目标地址处是Thumb指令; 当寄存器的位[0]为0时,表明目标地址处是ARM指令,此时,要求字对准。 Thumb指令集 指令示例: CODE16 ;Thumb程序段 ADR R0,ARM1 ;把标号ARM1处地址赋给R0 BIC R0,#01 ;清R0的位[0] BX R0 ;跳转到ARM1指令集 LET1: …… CODE32 ARM1: …… ADD R3,R4 ;ARM语句 ADR R0,LET+1 ;把LET1所在的地址赋给R0,置R0的位[0] BX R0 ;跳转到ARM指令集 Thumb指令集 3. SWI指令 指令格式: SWI 立即数 SWI指令为软件中断指令,用于产生软件中断,即能够引起SWI异常。 处理器状态切换到ARM态; 处理器模式切换到
您可能关注的文档
- 建筑智能化系统第2版第7章(1).ppt
- 第1章 逻辑代数基础.pdf
- 第1章 无线传感器网络.ppt
- 江森通用高性能变频器 VSD7000 VSD200技术手册 介绍.pptx
- 第1章 无线通信基础知识.ppt
- 2017 3月3日全国“爱耳日”宣传.ppt
- 江西省电子设计大赛电路.pdf
- 第1章 移动通信概述.ppt
- 江西移动4G LTE深度覆盖小基站产品交流.pdf
- 第1章__现代汽车电子新技术概述.ppt
- 小学科学:ESP8266智能插座电路原理与动手实践研究教学研究课题报告.docx
- 《金融开放浪潮下我国多层次监管体系构建与创新研究》教学研究课题报告.docx
- 区域教育质量监测中人工智能应用的数据质量分析与优化策略教学研究课题报告.docx
- 《金融科技监管中的数据治理与合规性要求》教学研究课题报告.docx
- 《3D打印技术在航空航天领域中的多材料制造与复合材料应用》教学研究课题报告.docx
- 《绿色金融发展中的政府职能与市场机制研究》教学研究课题报告.docx
- 《植物工厂多层立体栽培光环境调控技术对植物生长发育节律的调控机制探讨》教学研究课题报告.docx
- 销售团队年度业绩总结.docx
- 银行风险管理与金融危机防范.docx
- 银行网络攻击预警与快速响应机制.docx
最近下载
- 2022医院医疗机构开展违反中央八项规定精神突出问题专项治理的实施方案(详细版).pdf VIP
- 半导体工艺炉的炉门及半导体工艺炉.pdf VIP
- 测绘行业安全生产汇报.pptx VIP
- 半导体后端工艺半导体封装的作用、工艺和演变.docx VIP
- 半导体工艺原理--半导体工艺原理(贵州大学).ppt VIP
- 麦肯锡中国银行业CEO季刊(2020年秋)-麦肯锡-224页正式版.pdf VIP
- 走进潮汕文化ppt课件(优质ppt).pptx
- DG_TJ 08-2439-2024 建筑工程“多测合一”技术标准(正式版).pdf VIP
- Camera客观标准测试.pdf VIP
- 2024年湖北省恩施州恩施市六角亭街道招聘社区工作者真题参考答案详解.docx VIP
文档评论(0)