【彙編指令】數據處理指令之算術指令集

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



②帶進位的加法指令:ADC/ADDS

ADC

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


③反向減法指令;RSB/RSC

     rsb r0, r0, #100                ;r0 = 100 - r0 ;表示把100減去R0的值存入r0中





發佈了65 篇原創文章 · 獲贊 2 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章