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

3星 · 超过75%的资源 需积分: 50 2 下载量 172 浏览量 更新于2024-09-12 收藏 506KB PDF 举报
"该资源是一份关于ARM和Thumb-2指令集的速查卡,包含了各种指令的关键字、操作数格式、寄存器列表、移位操作、处理器模式等相关信息,旨在帮助用户快速查找和理解ARM处理器的指令系统。" 在ARM架构中,Thumb-2指令集是Thumb指令集的一个扩展,提供了更高的代码密度和性能。它包含了一组16位和32位的指令,使得在有限的代码空间中实现高性能计算成为可能。以下是其中的一些关键概念和指令格式: 1. **寄存器操作**:Rm{,<opsh>} 表示寄存器Rm,可选的操作数位移(opsh)。例如,这可以用于移位操作,如LSL(逻辑左移)、LSR(逻辑右移)、ASR(算术右移)等。 2. **操作数2**:<Operand2> 可以是灵活的操作数,可以接受移位和循环移位,这对于处理常量和数据操作非常有用。 3. **寄存器列表**:<reglist> 是一组用逗号分隔的寄存器,括在大括号内。这在执行如LDM(加载多寄存器)和STM(存储多寄存器)这样的指令时特别有用。 4. **处理器状态寄存器**:CPSR (当前处理器状态寄存器) 和 SPSR (保存的处理器状态寄存器) 用于保存处理器的条件标志和其他状态信息。 5. **位域操作**:<lsb> 和 <width> 分别表示位域的最低有效位和位域宽度,用于位操作指令,如BIT、BIC、MOV等,允许对特定位进行设置、清除或移动。 6. **处理器模式**:<p_mode> 代表处理器运行的不同模式,如用户模式(User)、系统模式(System)、中断服务模式(IRQ)等。 7. **移位类型**:如IA、IB、DA、DB分别代表增加后移位、增加前移位、减少后移位和减少前移位,这些用于指定位移操作的方向。 8. **中断标记**:<iflags> 包含a(中止)、i(中断)和f(快速中断)等标志,用于控制中断处理。 9. **前缀**:<prefix> 与并行指令相关,可能涉及特定指令的前缀操作。 10. **条件标志**:S标志用于指示是否更新条件标志。当S为1时,指令执行后会根据结果更新CPSR。 11. **大小标识**:如B、SB、H、SH分别代表字节、有符号字节、半字和有符号半字,用于内存访问指令。 12. **特权标识**:T标志用于指示指令是否在用户模式下具有特权。 13. **舍入和截断**:R标志指示结果是否需要进行舍入或截断。 这份速查卡详细列出了ARM和Thumb-2指令集的关键元素,对于开发者来说,是一个宝贵的参考资料,能够快速理解和使用这些指令进行程序设计。通过熟练掌握这些指令,可以在ARM平台上高效地编写和优化代码。