thats because your only running through the loop once? Just looking at a glance..

Code:
mov r0,#0x2
...
sub r0,#0x4
bpl loop