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

需积分: 9 4 下载量 103 浏览量 更新于2024-09-13 收藏 187KB PDF 举报
"该资源是关于ARM和Thumb-2指令集的快速参考卡片,涵盖了这两种指令集的关键信息,包括操作数、寄存器列表、处理器状态寄存器(PSR)字段以及各种操作标志等。" ARM和Thumb-2指令集是ARM架构中的两种主要指令集,它们用于控制和执行微处理器上的操作。Thumb-2是Thumb指令集的一个扩展,旨在提供更高的代码密度,同时保持与原始Thumb指令集的向后兼容性。 在ARM指令集中,指令通常以32位的形式存在,而Thumb-2指令集则包含16位和32位两种长度的指令,以适应不同的性能和空间需求。"Key to Tables"部分提到的符号如Rm{,<opsh>}表示一个可以被常量偏移的寄存器,<Operand2>则表示灵活的操作数2,可能涉及到位移和旋转操作。 "Rm{,<opsh>}"中的"Rm"是一个寄存器,可以被一个常量所移位,"opsh"代表了可以选择的移位操作,如逻辑左移、逻辑右移、算术右移或循环右移。这些移位操作在处理数据时非常有用,例如在位操作、算术运算和数据对齐中。 寄存器列表(<reglist>)以花括号包围,用逗号分隔,允许一次性操作多个寄存器。如果列表中包含了PC(程序计数器),则需要特别注意,因为这通常涉及到跳转指令。在某些情况下,列表中不能包含PC(<reglist-PC>),而在其他情况下则可以(<reglist+PC>)。 PSR(Processor Status Register)是处理器状态寄存器,包含了许多标志位,如条件标志C、V等,它们反映了最近的算术操作结果。在早期的ARM架构版本中,某些标志的行为可能是不可预测的,但在v5及以后的版本中,这些标志会保持不变。 "Rs|sh"表示可以是寄存器Rs或者立即数作为移位值。表格中的"ARM architecture versions"可能列出了不同版本的ARM架构中对于各种移位类型允许的值。 "iflags"指的是中断标志,可能包括a(abort)、i(interrupt)和f(fast interrupt)。这些标志用于控制和响应处理器的中断请求。 "x,y"可能指代半寄存器,其中x代表低16位([15:0]),y代表高16位([31:16]),这对于处理半寄存器操作和双字操作很有帮助。 <p_mode>是指处理器模式,ARM架构提供了多种处理器模式,如用户模式、系统模式、中断模式等,这些模式在处理不同级别的权限和异常时至关重要。 "imm8m"是ARM指令集中的一种8位立即数,通过右旋一个偶数位来形成一个32位的常量,这在进行位操作或形成特定地址时非常有用。 "SP"通常代表堆栈指针,是处理器用来跟踪内存栈顶部位置的寄存器,特别是在处理函数调用和局部变量时。 这个参考卡片为理解和使用ARM及Thumb-2指令集提供了快速的查阅指南,涵盖了从基本操作到高级特性的方方面面。对于开发嵌入式系统或进行ARM平台编程的工程师来说,它是一个宝贵的工具。