ARM指令集:
其中包括數據處理指令集
1)算術指令(ADD,ADC,SUB,SBC , RSB, RSC )
①加法指令:ADD,ADDS
其中帶S的表示可以更新標誌位
ADD/ADDS
Add values and store result to register.
Syntax | ADD{cond}{S} Rd, Rn, Op2 | |
Description | Add Rn and Op2 and store result to Rd. | |
Condition Flags | If S is specified update flags: N, Z, C, V. | |
Example |
ADDS R0,R2,R4 //Add R2 and R4 and store result to R0, update flags ADD R4,R4,#0xFF00 //Add value in 0xFF00 and R4 and store result in R4 |
area MY_kano,code,readonly
code32
entry
start
loop
mov r0, #10
mov r1, #2
adds r2, r0 ;對於R2寄存器,使用add指令是等於把R0的值加到R2寄存器中,
add r3, r0, r1 ;對於加法指令的第一操作數可以是寄存器,R3目標寄存器只可以是一個
add r4, r1, #0x4 ;同樣對於第一操作數寄存器,第二操作數可以是寄存器也可以是立即數
; add r5, 0x1c, r1 ;對於第一操作數不可以是立即數,只能是寄存器
b loop
end
Add with Carry.
Syntax | ADC{cond}{S} Rd, Rn, Op2 | |
Description | Add Rn and Op2 and Carry flag and store result to Rd. ADC is typical used for multi-word arithmetic. | |
Condition Flags | If S is specified update flags: N, Z, C, V. | |
Example |
ADDS R0,R2,R4 // add R2 + R4, store result to R0, set flags ADC R1,R3,R5 // add R3 + R5 with carry from previous ADDS, store result to R1 |
area MY_kano,code,readonly
code32
entry
start
loop
mov r0, #0xc
mov r1, #0xa
; sub r2, r0
sub r3, r0,r1
sub r4, r1, #0x9
b loop
end