常用ARM指令汇总

  • 格式:doc
  • 大小:29.00 KB
  • 文档页数:4

常用ARM指令集及汇编
一、ARM处理器的寻址方式
二、指令集学习
(一)ARM指令集
1.指令格式
2.条件码
3.ARM存储器访问指令
1)LDR/ STR-加载/ 存储指令
2)LDM/ STM-多寄存器加载/ 存储指令
3)SWP-寄存器和存储器交换指令
4.ARM数据处理指令
1)数据传送指令
a)MOV-数据传送指令
b)MVN-数据非传送指令
2)算术逻辑运算指令
a)ADD-加法运算指令
b)SUB-减法运算指令
c)RSB-逆向减法指令
d)ADC-带进位加法指令
e)SBC-带进位减法指令
f)RSC-带进位逆向减法指令
g)AND-逻辑“与”
h)ORR-逻辑“或”
i)EOR-逻辑“异或”
j)BIC-位清除指令
3)比较指令
a)CMP-比较指令
b)CMN-负数比较指令
c)TST-位测试指令
d)TEQ-相等测试指令
4)乘法指令
a)MUL-32位乘法指令
b)MLA-32位乘加指令
c)UMULL-64位无符号乘法指令
d)UMLAL-64位无符号乘加指令
e)SMULL-64位有符号乘法指令
f)SMLAL-64位有符号乘加指令
5.ARM分支指令
1)B-分支指令
2)BL-带连接的分支指令
3)BX-带状态切换的分支指令
6.ARM协处理器指令
1)CDP-协处理器数据操作指令
2)LDC-协处理器数据读取指令
3)STC-协处理器数据写入指令
4)MCR-ARM处理器到协处理器的数据传送指令
5)MRC-协处理器到ARM处理器的数据传送指令7.ARM杂项指令
1)SWI-软中断指令
2)MRS-读状态寄存器指令
3)MSR-写状态寄存器指令
8.ARM伪指令
1)ADR-小范围的地址读取伪指令
2)ADRL-中等范围的地址读取伪指令
3)LDR-大范围的地址读取伪指令
4)NOP-空操作伪指令
(二)Thumb指令集
1.Thumb指令集和ARM指令集的区别
2.Thumb存储器访问指令
1)LDR/ STR-加载/ 存储指令
2)PUSH/ POP-寄存器入栈 / 出栈指令
3)LDMIA/ STMIA-多寄存器加载/ 存储指令3.Thumb数据处理指令
1)数据传送指令
a)MOV-数据传送指令
b)MVN-数据非传送指令
c)NEG-数据取负指令
2)算术逻辑运算指令
a)ADD-加法运算指令
b)SUB-减法运算指令
c)ADC-带进位加法指令
d)SBC-带进位减法指令
e)MUL-乘法运算指令
f)AND-逻辑“与”
g)ORR-逻辑“或”
h)EOR-逻辑“异或”
i)BIC-位清除指令
j)ASR-算术右移指令
k)LSL-逻辑左移指令
l)LSR-逻辑右移指令
m)ROR-循环右移指令
3)比较指令
a)CMP-比较指令
b)CMN-负数比较指令
c)TST-位测试指令4.Thumb分支指令
1)B-分支指令
2)BL-带连接的分支指令
3)BX-带状态切换的分支指令5.Thumb杂项指令
1)SWI-软中断指令
6.Thumb伪指令
1)ADR-小范围的地址读取伪指令
2)LDR-大范围的地址读取伪指令
3)NOP-空操作伪指令。