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