ARM 指令集用户指南
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.指令仅为 ARM9E 设备可用。
描述 带进位加法。 将常数或寄存器与另一个寄存器相加。 逻辑与。 分支转跳。 位清除。 断点。 带链条转跳。 带链条和状态切换转跳。 带状态切换转跳。 协处理器数据操作。 可选择的数据操作。 计数前导零。 负数比较指令。 常数或寄存器之间比较。 异或操作。 从内存某一连续单元加载到协处理器寄存 器中。 可选择的加载。 加载多个寄存器。 从内存中加载一个32位数据。 从内存中加载一个字节数据。 从内存中加载一个16位半字数据。 从内存中加载一个有符号的字节数据。 从内存中加载一个有符号的半字数据。 从内存中加载一个双字Rd 和 Rd+1。 数据从CPU寄存器传送到协处理器寄存器。 可选传送。 2个ARM寄存器传送。 乘加指令。 将常数或寄存器传送给另一个寄存器。 数据从协处理器寄存器传送到CPU寄存器。 可选传送。 2个ARM寄存器传送。 读状态寄存器指令。 写状态寄存器指。 乘法指令。 数据非传送指令。 空操作。 或操作。 内存预装载。
QADD1 QDADD1 QSUB1 QDSUB1 RSB RSC SBC SMULxy1 SMULWy1 SMLAxy1 SMLAWy1 SMLALxy1 STC STC21 STM STR STRB STRH STRD1 SUB SWI SWP SWPB TEQ TST 注意:
Rd := SAT (Rm + Rn) Rd := SAT (Rm + SAT (Rn * 2)) Rd := SAT (Rm - Rn) Rd := SAT (Rm - SAT (Rn*2)) Rd := Op2 - Rn Rd := Op2 - Rn - 1+Carry Rd := Rn - Op2 - 1+Carry Rd := Rm[x] * Rs[y] Rd := (Rm * Rs[y])[47:16] Rd := Rn + Rm[x] * Rs[y] Rd := Rn+(Rm * Rs[y])[47:16] RdHi,RdLo := RdHi,RdLo + Rm[x]*Rs[y] address:= CRn 协处理器指定 栈操作 (Push) <address>:=Rd [address][7:0] := Rd[7:0] [address][15:0] :=Rd[15:0] [address][31:0] := Rd [address+4][31:0] := Rd+1 Rd := Rn - Op2 OS 调用 Rd := [Rn], [Rn] := Rm Rd := ZeroExtended[Rn][7:0], [Rn][7:0] := Rm CPSR flags:= Rn EOR Op2 CPSR flags:= Rn AND Op2
操作 Rd := Rn + Op2 + C Rd := Rn + Op2 Rd := Rn AND Op2 R15 := address Rd := Rn AND NOT Op2 进入调试状态 R14 := 下条指令地址,R15 :=转跳地址。 R14 := 下条指令地址。 R15 := Rm[31:1],当地址0位为1时转跳到Thumb 态。 R15 := Rn, change to Thumb if address bit 0 is 1 协处理器指令 协处理指令 Rd := Rm中前导零的数目 CPSR flags := Rn + Op2 CPSR flags := Rn - Op2 Rd:= Rn EOR Op2 协处理器数据读取指令 特殊协处理器加载 栈操作 (Pop) Rd := [address][31:0] Rd := ZeroExtend ([address][7:0]) Rd := ZeroExtend ([address][15:0]) Rd := SignExtend ([address][7:0]) Rd := SignExtend ([address][15:0]) Rd := [address][31:0] Rd+1 := [address+4][31:0] cRn:=rRn {<op>cRm} 协处理器指定 协处理器指定 Rd := (Rm * Rs) + Rn Rd := Op2 Rn := cRn{<op>cRm} 协处理器指定 协处理器指定 Rn := PSR PSR := Rm Rd := Rm * Rs Rd := NOT Rm 无 Rd:=Rn OR Op2 内存从预定地址加载
饱和加。 双精度饱和加。 饱和减。 双精度饱和减。 逆向减法指令。 带进位逆向减法指令。 带进位减法。 饱和乘。 饱和乘。 饱和乘。 饱和乘。 饱和乘。 存储协处理器寄存器。 可选存储。 存储多个寄存器寄存器。 保存一个寄存器到内存。 存储寄存器字节到内存。 存储寄存器半字到内存。 存储寄存器双字 Rd 和 Rd+1。 减法。 软中断。 寄存器和存储器交换指令。 寄存器和存储器交换字节指令。 相等测试指令。 位测试。
协处理器数据读取指令从内存某一连续单元加载到协处理器寄存器中
助记符 ADC ADD AND B BIC BKPT1 BL BLX1 BX CDP CDP21 CLZ1 CMN CMP EOR LDC LDC21 LDM LDR LDRB LDRH LDRSB LDRSH LDRD1 MCR MCR21 MCRR1 MLA MOV MRC MRC21 MRRC1 MRS MSR MUL MVN NOP1 ORR PLD1