ARM与Thumb-2指令集速查卡详解

需积分: 50 6 下载量 79 浏览量 更新于2024-11-01 收藏 506KB PDF 举报
ARM_n_Thumb2指令集速查卡提供了对ARM和Thumb-2这两种嵌入式微控制器架构核心指令集的详细介绍。ARM指令集通常应用于高性能应用,而Thumb-2则是一种低功耗、精简版的指令集,特别适合于资源受限的设备。这份速查卡旨在帮助开发者快速查找和理解两种模式下的关键操作。 1. **ARM指令集与Thumb-2的区别**: - ARM指令集通常执行速度更快,但代码密度较低。 - Thumb-2是ARM指令集的轻量级版本,通过16位指令节省空间和能耗,适合于低性能场景。 2. **操作码格式**: - `<opsh>`代表操作码,包括不同类型的指令和可能的选项。 - `<Operand2>`和`<reglist>`用于指示操作数,可以是寄存器列表或直接数值,遵循特定格式规则。 3. **寄存器和状态寄存器**: - `Rm`、`CPSR`和`SPSR`分别代表目的寄存器、当前处理器状态寄存器和保存的处理器状态寄存器,用于处理处理器状态和控制转移。 4. **移位操作**: - 移位和循环移位只能应用于`Operand2`,并且不同类型的操作允许的移位值受ARM体系结构版本限制。 5. **处理器模式**: - `<p_mode>`指定了处理器的工作模式,如用户模式、系统模式等,不同的模式有不同的权限和行为。 6. **立即数和偏移**: - `<imm8m>`和`<imm32m>`分别表示8位和32位的立即数,生成方法根据模式不同。 - `<lsb>`和`<width>`定义了位域的细节,包括最低有效位和位宽。 7. **前缀和变址操作**: - `{X}`表示循环移位寄存器Rs,而`{IA|IB|DA|DB}`用于指示数据加载或存储操作的地址调整方式。 8. **条件标志和操作结果**: - `<iflags>`标识中断类型,如中止、中断、快速中断等。 - `{S}`表示更新条件标志,`{R}`表示结果是否需要舍入。 9. **数据类型和大小**: - `{B|SB|H|SH}`分别代表字节、有符号字节、半字和有符号半字,用于数据存储和操作。 10. **特殊特性**: - `{T}`表示指令在用户模式下具有特权,某些情况下如STR指令会有额外限制。 这份速查卡作为开发人员的工具,提供了ARM_n_Thumb2指令集的核心要素,便于理解和调用这些指令进行高效、低功耗的嵌入式编程。对于深入理解ARM Cortex-M3这样的基于ARM架构的微控制器而言,它是不可或缺的学习参考资料。