/*
* 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"
加法可以在有符号和无符号数上进行。