原创 ARM指令集(51条)

2012-11-2 22:21 1973 16 16 分类: 消费电子

 

不同的ARM体系结构版本支持的指令是不同的,但是新的版本一般是增加指令并且保持指令的向后兼容。
也就是说,在ARMv4T上写的代码在ARMv5TE处理器上也是可以运行的。下表列出了所有ARMv5E指令集架
构ISA下支持的指令。这个ISA包括了所有ARM指令,以及在ARM指令集中一些新的功能特征。“ARM ISA”
一列,列出了该指令是在哪个修定版本引入的。一些指令在后续的架构中已扩展了功能,例如CDP指令在
ARMv5中有一个变体叫CDP2。同样,有此指令,像LDR,也有ARMv5的扩展,但不需要新的或扩展的助记符。
     
助记符 ARM ISA 说明
ADC   带进位的32位数加法
ADD   32位数的相加
AND   32位数的逻辑与
B   在32M空间内的相对跳转指令
BIC   32位数的逻辑位清零
BKPT   断点指令
BL   带链接的相对跳转指令
BLX   带链接的切换跳转
BX   切换跳转
CDP CDP2   协处理器数据处理操作
CLZ   零计数
CMN   比较两个数的相反数
CMP   32位数的比较
EOR   32位逻辑异或
LDC LDC2   从协处理器取一个或多个 32位值
LDM   从内存送多个32位字到ARM寄存器
LDR   从虚拟地址取一个单个的32位值
MCR MCR2 MCRR   从寄存器送数据到协处理器
MLA   32位乘累加 
MOV   传送一个32位数到寄存器
MRC MRC2 MRRC   从协处理器传送数据到寄存器
MRS   把状态寄存器的值送到通用寄存器
MSR   把通用寄存器的值传送到状态寄存器
MUL   32位乘
MVN   把一个32位数的逻辑“非”送到寄存器
ORR   32位逻辑或
PLD   预装载提示指令
QADD   有符号32位饱和加
QDADD   有符号双32位饱和加
QSUB   有符号32位饱和减
QDSUB   有符号双32位饱和减
RSB   逆向32位减法
RSC   带进位的逆向32位减法
SBC   带进位的32位减法
SMLAxy   有符号乘累加((16位X16位)+32位=32位)
SMLAL   64位有符号乘累加((32位X32位)+64位=64位)
SMLALxy   64位有符号乘累加((16位X16位)+64位=64位)
SMLAWy   有符号乘累加(((32位X16位)》16位)+32位=32位)
SMULL   64位有符号乘累加((32位X32位)=64位)
SMULxy   有符号乘(16位X16位=32位)
SMULWy   有符号乘(32位X16位》16=32位
STC STC2   从协处理器中把一个或多个32位值存到内存
STM   把多个32位的寄存器值存放到内存
STR   把寄存器的值存到一个内存的虚地址空间
SUB   32位减法
SWI   软中断
SWP   把一个字或者一个字节和一个寄存器值交换
TEQ   等值测试
TST   位测试
UMLAL   64位无符号乘累加((32位X32位)+64位=64位)
UMULL   64位无符号乘法(32位X32位=64位)

 

文章评论0条评论)

登录后参与讨论
我要评论
0
16
关闭 站长推荐上一条 /2 下一条