Thumb® 16 位指令集
快速参考卡
本卡列出了版本低于 ARM®v6T2 的支持 Thumb 的处理器中可用的所有 Thumb 指令。 此外,还列出了所有 Thumb-2 16 位指令。
除非另外注明,否则本卡中显示的指令均为 Thumb-2 16 位指令。
除非指定,否则所有寄存器都为 Lo (R0-R7)。 Hi 寄存器为 R8-R15。
表关键字
§
请参阅表 ARM 体系结构版本。
以逗号隔开的 Lo 寄存器列表,括在大括号 { 和 } 内。
以逗号隔开的 Lo 寄存器列表。加上 LR,括在大括号 { 和 } 内。
以逗号隔开的 Lo 寄存器列表。加上 PC,括在大括号 { 和 } 内。
运算
移动
加法
减法
乘法
比较
逻辑
移位/循环
立即数
Lo 到 Lo
Hi 到 Lo、Lo 到 Hi、Hi 到 Hi
任何寄存器之间
立即数 3
所有寄存器 Lo
Hi 到 Lo、Lo 到 Hi、Hi 到 Hi
任何寄存器之间
立即数 8
带进位
值与 SP
SP 所存储的地址
PC 所存储的地址
Lo 到 Lo
立即数 3
立即数 8
带进位
来自 SP 的值
求反
乘法
负数
立即数
和
异或
或
位清除
取反移动
测试位
逻辑左移
逻辑右移
算术右移
向右循环移
§ 汇编程序
6
MOVS Rd, #
MOVS Rd, Rm
MOV Rd, Rm
MOV Rd, Rm
ADDS Rd, Rn, #
ADDS Rd, Rn, Rm
ADD Rd, Rd, Rm
T2 ADD Rd, Rd, Rm
ADDS Rd, Rd, #
ADCS Rd, Rd, Rm
ADD SP, SP, #
ADD Rd, SP, #
ADR Rd,
Thumb 16 位指令集
快速参考卡
运算
加载
§
带直接偏移量,字
半字
字节
带寄存器偏移量,字
半字
有符号半字
字节
有符号字节
相对 PC
相对 SP
多个寄存器,不包括基址寄存器
多个寄存器,包括基址寄存器
存储
带直接偏移量,字
半字
字节
带寄存器偏移量,字
半字
字节
相对 SP,字
多个寄存器
推入
带链接的推入
弹出
弹出和返回
推入
弹出
带交换的弹出和返回
条件判断
条件判断
汇编程序
LDR Rd, [Rn, #]
LDRH Rd, [Rn, #]
LDRB Rd, [Rn, #]
LDR Rd, [Rn, Rm]
LDRH Rd, [Rn, Rm]
LDRSH Rd, [Rn, Rm]
LDRB Rd, [Rn, Rm]
LDRSB Rd, [Rn, Rm]
LDR Rd,
Thumb 16 位指令集
快速参考卡
运算
处理器
状态
更改
无操作
提示
超级用户调用
更改处理器状态
设置端序
断点
无操作
设置事件
等待事件
等待中断
Yield
§ 汇编程序
操作
SVC
超级用户调用处理器异常
注释
在指令中编码的 8 位立即值。 以前为 SWI。
6 CPSID
6 CPSIE
6 SETEND
5T BKPT
6 NOP
T2 SEV
T2 WFE
T2 WFI
T2 YIELD
禁用指定的中断
启用指定的中断
为加载和保存设置端序
预取中止或 进入调试状态
无操作,可能不花费任何时间。
向多处理器系统发送事件信号。
等待事件、IRQ、FIQ、不精确的中止或调试进入请求。
等待 IRQ、FIQ、不精确的中止或调试进入请求。
生成对其他线程的控制。
可为 BE(大端)或 LE(小端)。
在指令中编码的 8 位立即值。
如果不执行,则无操作。
如果不执行,则无操作。
如果不执行,则无操作。
如果不执行,则无操作。
条件字段
助记符
EQ
NE
说明
等于
不等于
CS / HS 进位设置/无符号大于或相同
CC / LO 进位清除/无符号小于
MI
PL
VS
VC
HI
LS
GE
LT
GT
LE
AL
负数
正数或零
溢出
无溢出
无符号大于
无符号小于或相同
有符号大于或等于
有符号小于
有符号大于
有符号小于或等于
始终。 不可用于 B{cond} 中
对于版本早于 ARMv6T2 的处理器,在 Thumb 代码中,cond 只可用于条件跳转 ( B{cond} )
指令中。
在 Thumb-2 代码中,cond 可用于所有这些指令中(除了 CBZ、CBNZ、CPSID、CPSIE、IT 和
SETEND)。
条件是在前面的 IT 指令中进行编码的(B{cond} 指令除外)。
如果汇编语言源文件中显式提供了 IT 指令,
则指令中的条件必须与相应的 IT 指令相匹配。
ARM 体系结构版本
4T
5T
6
T2
ARM v4 及更高版本的所有 Thumb 版本。
ARM v5 及更高版本的所有 Thumb 版本。
ARM v6 及更高版本的所有 Thumb 版本。
ARM v6 及更高版本的所有 Thumb-2 版本。
所有权声明
带有 ® 或 ™ 标记的词语和徽标是 ARM 公司的注册商标或商标。 此处提及的其他品牌和名称可能是其
各自所有者的商标。
除非事先得到版权所有人的书面许可,否则不得以任何形式修改或复制本文档包含的部分或全部信息
以及产品说明。
本文档描述的产品还将不断发展和完善。 ARM 公司将如实提供本文档所述产品的所有特性及其使用方
法。 但是,所有暗示或明示的担保,包括但不限于对特定用途适销性或适用性的担保,均不包括在内。
本参考卡仅旨在帮助读者使用产品。 对由于使用本参考卡中的任何信息,或由于本参考卡的信息错误、
遗漏,以及产品的错误使用所造成的任何损失,ARM 公司概不负责。
文档编号
ARM QRC 0006D
变更记录
编号
A
B
C
D
变更
日期
2004 年 11 月 第一版
2005 年 5 月
2006 年 3 月
2007 年 3 月
RVCT 2.2 SP1
RVCT 3.0
RVCT 3.1
www.arm.com