相关命令:
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