ARM汇编十个数冒泡排序问题

就是将DATA1中的十个数排序后放入DATA2中,我的程序运行后就是不排序,刚学,求帮修改。
AREA RESET,CODE
EXPORT __Vectors
EXPORT Reset_Handler
__Vectors
DCD __initial_sp
DCD Reset_Handler

Reset_Handler PROC
NOP
NOP
DATA1
z DCD 10,-1,3,7,16,5,15,2,6,3;
LDR R0,=11
loop2
SUB R0,#1
CMP R0,#1
BLS loop1
LDR R1,=1
loop4
CMP R0,R1
BLS loop2
LDR R2,=z
LDR R3,[R2]
LDR R4,[R2,#4]
CMP R3,R4
BGT loop3
STR R3,[R2,#4]
STR R4,[R2]
loop3
ADD R1,#1
B loop4
loop1
LDR R2,=z
LDMIA R2,{R3-R12}
PUSH {R3-R12}
B .
ENDP

AREA STACK,DATA
DATA2
DCD 0,0,0,0,0,0,0,0,0,0;
SPACE 0x100
__initial_sp

END