第1天-ARM匯編指令ADD/SUB/MUL
(Addition)
ADD{條件}{S} , , dest = op_1 + op_2
ADD 將把兩個(gè)操作數加起來(lái),把結果放置到目的寄存器中。操作數 1 是一個(gè)寄存器,操作數 2 可以是一個(gè)寄存器,被移位的寄存器,或一個(gè)立即值:
ADD R0, R1, R2 ; R0 = R1 + R2 ADD R0, R1, #256 ; R0 = R1 + 256 ADD R0, R2, R3,LSL#1 ; R0 = R2 + (R3 << 1)
加法可以在有符號和無(wú)符號數上進(jìn)行。
ps:帶進(jìn)位的加法ADC
SUB : 減法
(Subtraction)
SUB{條件}{S} , , dest = op_1 - op_2
SUB 用操作數 one 減去操作數 two,把結果放置到目的寄存器中。操作數 1 是一個(gè)寄存器,操作數 2 可以是一個(gè)寄存器,被移位的寄存器,或一個(gè)立即值:
SUB R0, R1, R2 ; R0 = R1 - R2 SUB R0, R1, #256 ; R0 = R1 - 256 SUB R0, R2, R3,LSL#1 ; R0 = R2 - (R3 << 1)
減法可以在有符號和無(wú)符號數上進(jìn)行。
ps:帶進(jìn)位的減法SBC
MUL : 乘法
這兩個(gè)指令與普通算術(shù)指令在對操作數的限制上有所不同:
給出的所有操作數、和目的寄存器必須為簡(jiǎn)單的寄存器。
你不能對操作數 2 使用立即值或被移位的寄存器。
目的寄存器和操作數 1 必須是不同的寄存器。
最后,你不能指定 R15 為目的寄存器
(Multiplication)
ps:帶累加的乘法MLA
MUL{條件}{S} , , dest = op_1 * op_2
MUL 提供 32 位整數乘法。如果操作數是有符號的,可以假定結果也是有符號的。
評論