首页 理论教育 Thumb指令集详解及应用-嵌入式系统原理与应用

Thumb指令集详解及应用-嵌入式系统原理与应用

时间:2023-11-23 理论教育 版权反馈
【摘要】:②大多数Thumb 指令是无条件执行的,而所有ARM 指令都是条件执行的。④Thumb 指令集没有协处理器指令、信号量指令、乘加指令、64 位乘法指令以及访问CPSR 或SPSR 的指令,而且指令的第二操作数受到限制。⑥支持Thumb 指令的ARM 微处理器都可以执行标准的32 位ARM 指令集。当T 置“1”,则认为是16 位的Thumb 指令集;当T 置“0”,则认为是32 位的ARM 指令集。例如,在异常状态下,由于Thumb 指令不能处理异常,所以处理器自动转到ARM 模式下执行。

Thumb指令集详解及应用-嵌入式系统原理与应用

ARM 开发工具完全支持Thumb 指令,应用程序可以灵活地将ARM 和Thumb 子程序混合编程,以便在例程的基础上提高性能或代码密度。 在ADS 集成开发环境下,在编写Thumb 指令时,先要使用伪指令CODE16 声明,而且在ARM 指令中要使用BX 指令跳转到Thumb 指令,以切换处理器状态,编写ARM 指令时,则可使用伪指令CODE32 声明。 与ARM 指令集相比,Thumb 指令集有如下特点:

①Thumb 指令采用16 位二进制编码,而ARM 指令是32 位的。

②大多数Thumb 指令是无条件执行的(除了转移指令B),而所有ARM 指令都是条件执行的。

③许多Thumb 数据处理指令采用二地址格式,即目的寄存器与一个源寄存器相同,而大多数ARM 数据处理指令采用的是三地址格式(除了64 位乘法指令外)。

④Thumb 指令集没有协处理器指令、信号量指令、乘加指令、64 位乘法指令以及访问CPSR 或SPSR 的指令,而且指令的第二操作数受到限制。(www.xing528.com)

⑤由于是压缩的指令,在ARM 指令流水线中实现Thumb 指令时,先动态解压缩,然后作为标准的ARM 指令来执行。

⑥支持Thumb 指令的ARM 微处理器都可以执行标准的32 位ARM 指令集。 在任何时刻,CPSR 的第5 位(位T)决定了ARM 微处理器执行的是ARM 指令集还是Thumb 指令集。当T 置“1”,则认为是16 位的Thumb 指令集;当T 置“0”,则认为是32 位的ARM 指令集。

⑦由ARM 模式进入Thumb 模式时,是显式的进入。 由Thumb 模式进入ARM 模式时,可以隐式的进入,也可以显式的进入。 所谓“隐式的进入”,是指不执行交换转移指令,直接进入另一种模式。 例如,在异常状态下,由于Thumb 指令不能处理异常,所以处理器自动转到ARM 模式下执行。 而所谓“显式的进入”,是指使用交换转移指令来实现处理器模式的转换。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈