ARM与Thumb-2指令集速查手册

需积分: 16 1 下载量 121 浏览量 更新于2024-09-18 收藏 154KB PDF 举报
"ARM_and_Thumb-2_Instruction_Set_Quick_Reference_Card 是一份关于 ARM 和 Thumb-2 指令集的速查手册,主要针对英文读者,提供了这两个指令集的关键信息和表格参考。手册中可能包含了 Rm{,<opsh>}、<Operand2>、<reglist>、<fields>、<PSR>、<reglist-PC>、<PSR>、<reglist+PC>、C*、V* 等符号的详细解释,以及不同版本 ARM 架构中的变化、中断标志(iflags)、处理器模式(p_mode)和立即数(imm8m)等关键概念。" ARM 和 Thumb-2 指令集是 ARM 架构微处理器中的两种主要指令格式。ARM 指令集是一种 32 位指令集,而 Thumb-2 是 ARM 公司推出的增强型 16 位指令集,它扩展了原始的 16 位 Thumb 指令集,提供了与 ARM 指令集类似的性能,但更紧凑,适合内存有限的系统。 1. **Rm{,<opsh>}**: 这个符号表示一个寄存器 Rm,后面可以跟随一个可选的操作数移位(opsh),表示对 Rm 的值进行移位操作,例如左移或右移。移位可以是立即数或寄存器提供的值。 2. **<Operand2>**: 表示第二个操作数,可以是灵活的,可能包含移位和旋转操作,这允许在一条指令中实现更复杂的计算。 3. **<reglist>**: 用花括号 {} 包围的逗号分隔的寄存器列表,用于指定一组寄存器。 4. **<PSR>**: 这代表处理器状态寄存器(PSR),包括当前处理器状态寄存器(CPSR)和保存的处理器状态寄存器(SPSR),存储了处理器的各种标志和状态信息。 5. **C*, V***: 这些是处理器标志,C 表示进位标志,V 表示溢出标志。在 ARM v4 及更早版本中,它们的行为可能是不可预测的,但在 v5 及以后版本中,则保持不变。 6. **<reglist-PC>** 和 **<reglist+PC>**: 分别表示不包括程序计数器(PC)的寄存器列表和包括 PC 的列表,用于指明指令操作的数据范围。 7. **<iflags>**: 中断标志,如 a(abort)、i(中断)和 f(快速中断),这些标志控制处理器如何响应外部中断和异常。 8. **x, y**: 这些可能表示半寄存器,x 通常代表低 16 位([15:0]),y 代表高 16 位([31:16]),在某些 ARM 指令中,可以独立访问寄存器的半部分。 9. **<imm8m>**: 在 ARM 指令中,这通常是一个 32 位常数,由一个 8 位值通过偶数位右旋转形成。 10. **<p_mode>**: 引用处理器模式,ARM 架构支持多种处理器模式,如用户模式、系统模式、中断模式等,不同的模式下,权限和可用指令集都可能有所不同。 这个速查手册对于理解 ARM 和 Thumb-2 指令集的基本结构和用法非常有帮助,是开发和调试基于 ARM 架构的软件时的重要参考资料。通过查阅手册中的表格,开发者可以迅速查找特定指令的格式、操作和用途,从而提高开发效率。