ARM base instruction -- add

/*
 * ADD : 加法
 */
    (Addition)

    ADD{条件}{S}  <dest>, <op 1>, <op 2>

        dest = op_1 + op_2

    ADD 将把两个操作数加起来,把结果放置到目的寄存器中。
    操作数 1 是一个寄存器,操作数 2 可以是一个寄存器,被移位的寄存器,或一个立即值:

        ADD     R0, R1, R2              ; R0 = R1 + R2
        ADD     R0, R1, #256            ; R0 = R1 + 256
        ADD     R0, R2, R3,LSL#1        ; R0 = R2 + (R3 << 1)

        add ip, pc, #0, 12        // ip = pc + 0x0 << 12     ip = 0x8484 + 0x0 = 0x8484
        add ip, ip, #8, 20        // ip = ip + 0x8 << 20
                                // 32bit arm cortex-a7,所以向右做circular bit shift等於是向右位移 (32-20 = 12) bit,
                                // 所以指令變為 "ip = ip + 0x8 << 12 = ip + 0x8000 = 0x8484 + 0x8000 = 0x10484"


    加法可以在有符号和无符号数上进行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值