指令集

(快速查找)

在本文档的汇编语法中,用 # 前缀表示立即值,用 & 表示十六进制值,用 % 表示二进制值,用 {花括号} 表示指令中可选的设置字段或位。下面表格中粗体的指令是核心 ARM 指令,其他的是值得包含的位和片段、移位选项和汇编器助记码(mnemonic)... 还列出了协处理器指令。但是用于 RISC OS 机器的 ARM 处理器不支持协处理器,只在一个可访问的芯片中提供了实际上的协处理器功能。其中包括设置 ARM、cache、MMU 的设施,等...

 
指令 意义 最早的 CPU / 注释
ADC 带进位的加法
ADD 加法
AND 逻辑与
ASL 算术左移 这是一个选项,不是指令 
ASR 算术右移 这是一个选项,不是指令 
B 分支
BIC 位清除
BL 带连接的分支
BX 分支到 Thumb 代码 StrongARM SA1110 ?
CDP 协处理器数据操作
CMN 比较取负的值
CMP 比较值
EOR 异或两个值
LDC 装载内存到协处理器
LDM 装载多个寄存器
LDR 装载寄存器
LDRB 装载字节到寄存器
LDRH 装载半字到寄存器 StrongARM
LDRSB 装载有符号字节到寄存器 StrongARM 
LDRSH 装载有符号半字到寄存器 StrongARM  
LSL 逻辑左移 这是一个选项,不是指令
LSR 逻辑右移 这是一个选项,不是指令
MCR 协处理器寄存器传送 -
MLA 带累加的乘法
MOV 传送值/寄存器到一个寄存器
MRC 协处理器寄存器传送
MRS 传送状态标志到一个寄存器 ARM 6 
MSR 传送一个寄存器的内容到状态标志 ARM 6 
MUL 乘法
MVN 传送取负的(值)
ORR 逻辑或
ROR 循环右移 这是一个选项,不是指令  
RRX 带扩展的循环右移 这是一个选项,不是指令  
RSB 反向减法 -  
RSC 带借位的反向减法 -  
SBC 带借位的减法 -  
SMLAL 带累加的有符号长(64 位)乘法 StrongARM  
SMULL 有符号长(64 位)乘法 StrongARM  
STC 协处理器数据传送 -  
STM 存储多个寄存器 -  
STR 存储一个寄存器 -  
STRB 存储一个字节(从一个寄存器) -  
STRH 存储一个半字(从一个寄存器) StrongARM  
STRSB 存储一个有符号字节(从一个寄存器) StrongARM  
STRSH 存储一个有符号半字(从一个寄存器) StrongARM  
SUB 减法 -  
SWI 导致一个软件中断 -  
SWP 交换寄存器与内存 ARM 3  
TEQ 测试等价(概念上的 EOR) -  
TST 测试并屏蔽(概念上的 AND) -  
UMLAL 带累加的无符号长(64 位)乘法 StrongARM  
UMULL 无符号长(64 位)乘法 StrongARM  

RISC OS 的 BASIC 汇编器的伪指令

ADR 得到目标的地址(4K 之内)
ADRL 得到目标的地址(超过 4K)
ALIGN 把程序计数器设置到下个字的边界
DCx 定义字节(B)、半字(W)、字(D)、字符串(S)、或浮点(F)值
EQUx 定义字节(B)、半字(W)、字(D)、字符串(S)、或浮点(F)值
OPT 选择汇编选项

IEEE 浮点指令

 


Return to index
Copyright © 2001 Richard Murray