Thumb指令集与ARM指令集的区别Thumb 指令集
Thumb 指令可以看做是ARM 指令压缩形式的子集,是针对代码密度【1】
的问题而提出的,它具有16 为的代码密度。
Thumb 不是一个完整的体系结构,不能指望处理程序只执行Thumb 指令而不支持ARM 指令集。
因此,Thumb 指令只需要支持通用功能,必要时,可借助完善的ARM 指令集,例如:所有异
常自动进入ARM 状态。
在编写Thumb 指令时,先要使用伪指令CODE16 声明,而且在ARM 指令中要使用BX 指令跳转到Thumb 指令,以切换处理器状态。
编写ARM 指令时,
可使用伪指令CODE32 声明。
【1】.代码密度:单位存储空间中包含的指令的个数。
例如
ARM 指令是32 位的,而Thumb 指令时16 位的,如果在1K 的存储空间中,可以放32 条ARM 指令,就可以放64 条Thumb 指令,因此在存放Thunb 指令时,代码密度高。
Thumb 指令集与ARM 指令集的区别
Thumb 指令集没有协处理器指令、信号量指令以及访问CPSR 或SPSR 的指令,没有乘加指令及64 位乘法指令等,且指令的第二操作数受到限制;除了。