×
嵌入式 > 嵌入式开发 > 详情

ARM汇编指令学习之开篇

发布时间:2020-08-19 发布时间:
|
指令集学习

(一)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-空操作伪指令



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
一只老鸟的嵌入式ARM学习心得