汇编指令集

来源:互联网 发布:编程语言有哪几种 编辑:程序博客网 时间:2024/06/18 13:00

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


 
原创粉丝点击