ARM®与Thumb®-2指令集详解

需积分: 50 9 下载量 192 浏览量 更新于2024-09-09 收藏 293KB PDF 举报
"ARM® 和 Thumb®-2 指令集快速参考卡" ARM架构是一种广泛使用的微处理器指令集,被应用于各种嵌入式系统和移动设备中。该指令集分为两种主要模式:ARM模式和Thumb模式。ARM模式提供完整的32位指令集,而Thumb模式则使用更紧凑的16位指令集,以节省存储空间和提高效率。Thumb-2是Thumb模式的扩展,引入了更多的32位指令,提高了代码密度和性能。 在ARM指令集中,寄存器是数据处理的基本单元。Rm、Rs等表示寄存器,其中m和s是寄存器编号。某些指令允许直接移动常数到寄存器,如`<reglist>`和`<Operand2>`。移位操作(如LSL、LSR、ASR、ROR)可以在操作数2上执行,以改变数据的位布局。`<reglist-PC>`和`<reglist+PC>`表示寄存器列表,但不包括程序计数器(PC),或包含PC的情况。 处理器状态寄存器(PSR)是管理处理器状态的关键组件。APSR、CPSR和SPSR分别代表应用程序状态寄存器、当前处理器状态寄存器和保存的处理器状态寄存器,它们记录了计算过程中的条件标志(如n、z、c、v和q)。这些标志用于决定分支、比较和其他操作的执行。 中断标记(如a、i、f)用于管理中断处理。在不同的体系结构版本中,某些标志的行为可能会有所不同。处理器模式(如用户模式、系统模式、中断模式等,用`<p_mode>`表示)影响PSR的使用和权限级别。 `<imm8m>`和`<lsb>`、`<width>`涉及位字段操作,允许对内存中的特定位进行设置、清除或测试。`<prefix>`用于并行指令的前缀,`{X}`和`{IA|IB|DA|DB}`指示数据访问和更新的方式,例如循环、前/后增加或减少基址寄存器。`{!}`标志指示是否在数据传输后立即更新基址寄存器。`{S}`标志决定是否更新条件标志,`<size>`定义了数据的大小(字节、半字等)。 ARM和Thumb-2指令集提供了丰富的指令选项,涵盖了数据处理、内存访问、控制流以及中断处理等各个方面,以适应不同应用场景的需求。理解和熟练掌握这些指令对于编写高效且优化的ARM架构代码至关重要。