ARM®与Thumb®-2指令集速查卡片

需积分: 9 3 下载量 2 浏览量 更新于2024-09-15 收藏 187KB PDF 举报
"ARM® and Thumb®-2 Instruction Set Quick Reference Card" ARM 和 Thumb-2 指令集是 ARM 架构中两种重要的指令集,它们用于构建和控制 ARM 处理器的操作。Thumb-2 是 Thumb 指令集的增强版,提供更高的代码密度和性能,适用于资源有限的嵌入式系统以及需要高效能计算的移动设备。 1. **ARM 指令集**:ARM 指令集通常为 32 位,并且在设计时注重效率和性能。它包含一系列数据处理、分支、加载和存储指令,用于执行各种计算任务。ARM 指令通常包括操作码、操作数和可能的立即数或寄存器引用。 2. **Thumb-2 指令集**:Thumb-2 旨在提供与 ARM 指令集相当的功能,但使用更小的 16 位格式。这使得代码占用更少的空间,对于资源受限的环境非常有用。Thumb-2 扩展了原始 16 位 Thumb 指令集,引入了 32 位指令,以实现更复杂的操作和更高的性能。 3. **指令格式**:指令格式在描述中提到的表格中有所说明,例如 `<Rm{,<opsh>}` 表示一个寄存器 Rm,可以加上一个可选的位移操作(opsh),这可能是立即数或寄存器的位移。`<Operand2>` 则指出了灵活的第二个操作数,可能包括位移和旋转操作。 4. **寄存器操作**:在 ARM 和 Thumb-2 指令集中,寄存器是数据处理的主要载体。`<reglist>` 指定一组用逗号分隔的寄存器,而 `<reglist-PC>` 和 `<reglist+PC>` 包含 PC(程序计数器)寄存器,但前者不包括,后者则包括。 5. **处理器状态寄存器(PSR)**:PSR 包括 CPSR(当前处理器状态寄存器)和 SPSR(保存的处理器状态寄存器)。这些寄存器保存了处理器的条件标志和其他关键状态信息。 6. **标志和中断**:C* 和 V* 标志表示条件标志,其行为在 ARM 架构的不同版本中可能有所不同。`<iflags>` 用于指定中断标志,如 abort、interrupt 和 fastinterrupt。 7. **半寄存器操作**:x 和 y 分别表示半寄存器 [15:0] 和 [31:16],在某些指令中用于访问 32 位寄存器的上半部分或下半部分。 8. **位移和旋转**:`<Rs|sh>` 允许 Rs 或立即值作为位移量,根据表中的说明,位移类型和允许的值各不相同。 9. **立即数**:`<imm8m>` 描述了一个由右旋转的 8 位值形成的 32 位常量,旋转的位数是偶数。 10. **处理器模式**:`<p_mode>` 提及了处理器模式,如用户模式、系统模式、中断模式等,不同的模式下,处理器对指令和资源的访问权限不同。 这些是 ARM 和 Thumb-2 指令集的一些核心概念。在实际编程或调试过程中,理解这些指令和它们的格式对于有效地利用 ARM 处理器的潜力至关重要。参考卡片提供了快速查阅这些关键要素的便捷方式。