ARM基础 六、ARM指令集

ARM指令集可以分为六大类

1.分别为数据处理指令               (完成CPU内部的计算)
2. Load/Store指令                      (完成CPU与内存 IO外设之间的数据传输)
3. 跳转指令                                (完成程序的跳转)
4. 程序状态寄存器处理指令       (完成 CPSR的管理 ) 
5. 协处理器指令                         (完成CPU扩展功能的实现) 

6. 异常产生指令                         (用户程序异常触发)






一、数据处理指令

1、数据传送指令MOV、MVN

MOV     指令格式 MOV{cond}{S} Rd,operand2

MVN      指令格式 MVN{cond}{S} Rd,operand2




2、算术运算指令ADD、SUB、ADC、RSB、SBC、RSC

ADD加法运算指令       eg:ADD R1,R1,R2             ;R1=R1+R2

SUB :减法运算指令       eg:SUBS R2,R1,R2      ;R2=R1-R2

ADC:带进位加法指令    eg:(使用ADC实现64位加法,结果存于R1、R0中)

                                                                ADDS R0,R0,R2        ;R0等于低32位相加,并影响标志位
                                                               ADC R1,R1,R3          ;R1等于高32位相加,并加上低位进位

SBC:带进位减法指令    eg:(使用SBC实现64位减法,结果存于R1、R0中)

                                                             SUBS R0,R0,R2        ; 低32位相减,并影响标志位
                                                       
     SBC R1,R1,R3          ;高32位相减,并减去低位借位

RSB逆向减法指令        eg: RSB R3,R1,#0xFF00          ;R3=0xFF00-R1 

                                                             RSBS R1,R2,R2,LSL #2             ;R1=(R2<<2)-R2=R2×3

RSC带进位逆向减法指 eg: (使用RSC指令实现求64位数值的负数)     RSBS R2,R0,#0               RSC R3,R1,#0 




3、逻辑运算AND、ORR、EOR、BIC

AND :  逻辑操作指令   eg:   ANDS R0,R0,#0x01        ;R0=R0&0x01,取出最低位数据                  AND R2,R1,R3      ;R2=R1&R3

ORR :   逻辑操作指令 eg:    ORR R0,R0,#0x0F         ;将R0的低4位置1    

                                                              MOV R1,R2,LSR #24     ;使用ORR指令将R2的高8位    

                                                              ORR R3,R1,R3,LSL #8    ;数据移入到R3低8位中

EOR  : 逻辑异或操作指令  eg:  EOR R1,R1,#0x0F         ;将R1的低4位取反            EOR R2,R1,R0     ;R2=R1^R0
                                                                EORS R0,R5,#0x01       ; 将R5和0x01进行逻辑异或    ;结果保存到R0,并影响标志位

<

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值