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