ARM与Thumb-2指令集速查手册
需积分: 16 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 架构的软件时的重要参考资料。通过查阅手册中的表格,开发者可以迅速查找特定指令的格式、操作和用途,从而提高开发效率。
2020-10-13 上传
2019-07-18 上传
2018-11-26 上传
2010-06-28 上传
2010-06-28 上传
2022-09-20 上传
2022-07-15 上传
2014-08-07 上传
2021-09-21 上传
Tony_na
- 粉丝: 0
- 资源: 2
最新资源
- pandas_func-0.1.tar.gz
- HMtools:水文模拟的一些工具
- 愤怒:针对JVM语言的新构建工具
- MyFirstApp
- EdgeLedger-website:响应式博客网站,是有关Udemy课程的一部分。 (HTML,CSS,JavaScript,Lightbox2,jQuery)
- pandas_gdc_agent-0.0.3.tar.gz
- Input Templates for Chrome-crx插件
- 记事本
- TTKOCR:OCR识别图片以及PDF中的文字,基于Windows和Linux的Qt
- inactivo-开源
- TICQLib-开源
- 实用的Python编程(@dabeaz的课程)-Python开发
- pandas_gdc_agent-0.0.2.tar.gz
- CatalystOne.93z8ql9mvz.gaVW3jf
- featran:一个用于数据科学和机器学习的Scala功能转换库
- Scribo Pronto-crx插件