导读:
本文包括了Thumb register usage, ARM-Thumb interworking, branch instructions, data processing, load-store instructions, stack operations and software interrupts.
| 一、简介 |
- Thumb将32Bit的ARM指令的子集译码成16Bit的指令集。Thumb在16bit总线的处理器上性能高于ARM指令集。但是在32bit总线的处理器上性能就差于ARM了。
- Thumb有着更高的code density.对于手机和PDA等设备code density是非常重要的。
- Thumb在相同的代码上比ARM指令集实现的内存大小少了30%
- Thumb的目的是用于编译器的,而不是为了手写的汇编代码。我建议你编写Thumb-目标代码通过C/C++等高级语言
| 二、Thumb register usage |
要改变cpsr和spsr,必须要进入ARM模式通过MSR和MRS来改变。Thumb不提供更改的方法。

Thumb指令集是ARM指令集的一个16位子集,适用于16位总线设备,提供更高的代码密度,尤其适合手机和PDA等设备。相比ARM,在32位总线处理器上性能较弱。Thumb模式下,编译器通过C/C++等高级语言生成代码,不直接支持改变cpsr和spsr,但可通过ARM模式的MSR和MRS指令。ARM-Thumb interworking允许在两种模式间切换,BLX指令自动保存pc,而BX则需要手动处理。条件分支仅在Thumb模式下有条件执行,数据处理指令主要操作低寄存器并更新cpsr。Thumb指令的寻址模式和基址寄存器有限制。当在Thumb模式下发生中断或异常,会自动转到ARM模式处理。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



