ARM汇编(2)

 

相关命令:

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
	

你可能感兴趣的:(ARM汇编(2))