ARM与Thumb-2指令集快速参考

需积分: 50 2 下载量 196 浏览量 更新于2024-09-11 收藏 293KB PDF 举报
"该资源是一个详细的ARM指令速查UAL,涵盖了ARM和Thumb-2指令集,包括寄存器操作、移位操作、操作数、处理器状态寄存器、中断标记、处理器模式等关键概念,适合学习和查阅ARM汇编语言的用户使用。" 在ARM架构中,指令集是其核心组成部分,ARM指令集主要用于处理复杂的计算任务,而Thumb-2指令集则提供了更加紧凑和高效的编码方式,适合嵌入式系统。这个速查卡片详细列出了各种指令格式和操作,方便开发者快速查找和理解。 1. **寄存器操作**:在ARM指令集中,寄存器是数据处理的基本单元。`Rm{,<opsh>}`表示寄存器Rm,可以配合不同的操作数移位(opsh),如逻辑移位、算术移位等。`<reglist>`表示由逗号分隔的寄存器列表,可能包含多个寄存器。 2. **操作数2**:`<Operand2>`可以进行移位操作,如循环移位,这对于处理位操作和数据排列非常重要。 3. **处理器状态寄存器(PSR)**:包括APSR、CPSR和SPSR,它们记录了程序执行时的条件标志和处理器状态,如零标志(Z)、进位标志(C)、负标志(N)和溢出标志(V)。`<flags>`指的是这些标志位,`<fields>`指PSR中的特定字段。 4. **中断标记**:`<iflags>`中的a、i、f分别代表中止、中断和快速中断,用于控制中断处理。 5. **处理器模式**:在ARM体系中,有多种处理器模式,如用户模式(User)、系统模式(System)、中断模式(Interrupt)等,`<p_mode>`用于指定当前运行的模式。 6. **常数和位操作**:`<imm8m>`和`<lsb>`涉及到常数生成和位域操作,例如生成32位常数,并指定位域的起始位置和宽度。 7. **基址更新**:`{!}`和`{S}`等后缀指示了指令执行后是否更新基址寄存器(如在内存访问后更新SP或LR),以及是否更新条件标志。 8. **数据传输与大小**:`<size>`标识数据传输的大小,如字节(B)、有符号字节(SB)、半字(H)和有符号半字(SH),这影响了指令如何处理内存中的数据。 通过这份速查UAL,开发者能够迅速找到所需的具体指令信息,对于理解和编写ARM或Thumb-2汇编代码非常有帮助。无论是进行底层编程、系统优化还是硬件驱动开发,掌握这些指令都是必要的。