- 1、本文档共67页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARM开发入门教程09_Thumb指令
Thumb指令
TONY 2012 TM 1
Thmb指令集编码
Thumb编程模型
Thumb指令的使用
Tony vopo123@126.com TM 2 2
Thumb指令集概述
Thumb指令集ARM指令集压缩形式的子集,是针对代码
密度的问题而提出的,它具有16位的代码密度。虽然所有
Thumb指令都有相应的ARM指令,但Thumb不是一个完整的
体系结构,处理器不可能只执行Thumb指令集而不支持ARM
指令集。ARM开发工具完全支持Thumb指令,应用程序可灵
活地将ARM和Thumb子程序混合编程,以便提高性能和代码
密度。在ARM指令中要使用BX指令跳转到Thumb指令,以切
换处理器状态。
Tony vopo123@126.com TM 3 3
特点
与ARM指令集相比,Thumb指令集有如下特点:
●采用 位二进制编码,而 指令是 位的。
16 ARM 32
● 由于是压缩的指令,在ARM指令流水线中实现Thumb指令
时,先动态解压缩,然后作为标准的ARM指令来执行。
●如何区分指令流取决于CPSR的第5位。若T为1,则认为是
Thumb指令,若T为0,则认为是32位ARM指令。
● 由ARM模式进入Thumb模式时,是显式进入;由Thumb模式
进入ARM模式时,可以是隐式的,也可以是显式的进入。所谓
“隐式的进入”是指不执行交换转移指令,直接进入另一种模式。
而“显式的进入”就是指使用交换转移指令来实现处理器模式的转
移.
Tony vopo123@126.com TM 4 4
特点
与ARM指令集相比,Thumb指令集有如下特点:
●Thumb指令集没有协处理器指令,信号量指令,乘加指令,
64位乘法指令以及访问CPSR或SPSR的指令,而且指令的第2操作
数受到限制。
● 除了分支指令B有条件指令功能外,其他指令均为无条件指令。
●大多数Thumb数据处理指令采用2地址格式。
Tony vopo123@126.com TM 5 5
Thumb指令集较ARM指令集有如下限制:
只有B指令可以条件执行,其它指令都不能条件执行;
分支指令的跳转范围有更多限制;
数据处理指令的操作结果必须放入其中一个;
单寄存器访问指令,只能操作R0~R7;
LDM和STM指令可以对R0~R7的任何子集进行操作;
Tony vopo123@126.com TM 6 6
Thumb状态切换
当系统复位后,ARM启动并执行ARM指令。进入Thumb指
令模式有2中方法。
●一种是执行一条交换转移指令 ,将指令中的目标地址寄存
BX
器的最低位置1,并将其他位的值放入程序计数器PC,则可进入
Thumb指令。
● 另一种是利用异常返回,也可把微处理器从ARM模式转换为
Thumb模式。
Tony vopo123@126.com TM 7 7
退出Thumb指令模式也有2种方法:
一种是执行Thumb指令中的交换转移BX指令可以显式地返回
文档评论(0)