相關命令:
cmp : 比較,該指令完成後會將cpusr的相關BIT置位
blo xxx: 當cmp 比較結果爲小於(無符號數)時跳轉
運行環境:
使用keil5, 使用keil 來學習arm彙編是個不錯的方法,調試過程中可以看到每個寄存器的值,棧空間等;
area text, CODE,READONLY
export MaxSumOfContinualSeq
export MaxtixSum
entry
;*********************************************
;MaxSumOfContinualSeq
;連續子序列最大和
;*********************************************
MaxSumOfContinualSeq
mov r2,#0
mov r4, #0
mov r5, #0
mov r6, #0xFFFFFFFF
loopn
mov r3, 4 ;specified array with type of int
mul r3, r3, r2
ldr r5, [r0, r3]
add r4, r4, r5
cmp r4, r6
movgt r6, r4
cmp r4, #0
movlt r4,#0
add r2, r2, #1
cmp r2,r1
blo loopn
mov r0, r6
bx lr
;*********************************************
; MaxtixSum
; 求矩陣的和,練習訪問二位數組
; @input:R0,matrix addr
; @input:R1,line number
; @input:r2,column number
;*********************************************
MaxtixSum
mov r4, #0
mov r5, #0
mov r8, #0
loopo
mov r5, #0
loopp
mov r6, 4
mov r9, r4
mul r9, r9, r2
add r9, r9, r5
mul r6, r6, r9
ldr r7, [r0, r6]
add r8, r8, r7
add r5, r5, #1
cmp r5, r2
blo loopp
add r4, r4, #1
cmp r4, r1
blo loopo
mov r0, r8
bx lr