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

http://www.yd-itedu.com/news/dap/2008/315/08315173355I953GAGKB1HHBE37AD59.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值