48 lines
656 B
NASM
48 lines
656 B
NASM
|
.global start
|
||
|
.global stack
|
||
|
.global reset
|
||
|
.global dst_addr
|
||
|
.global src_addr
|
||
|
.global words
|
||
|
|
||
|
.text
|
||
|
.thumb
|
||
|
.align 0
|
||
|
|
||
|
start:
|
||
|
ldr r0, dst_addr
|
||
|
ldr r1, src_addr
|
||
|
ldr r2, words
|
||
|
b check
|
||
|
|
||
|
copy:
|
||
|
ldmia r1!, {r3}
|
||
|
stmia r0!, {r3}
|
||
|
sub r2, #1
|
||
|
|
||
|
check:
|
||
|
cmp r2, #0
|
||
|
bne copy
|
||
|
|
||
|
@ Fix for SAM-BA stack bug
|
||
|
ldr r0, reset
|
||
|
cmp r0, #0
|
||
|
bne return
|
||
|
ldr r0, stack
|
||
|
mov sp, r0
|
||
|
|
||
|
return:
|
||
|
bx lr
|
||
|
|
||
|
.align 0
|
||
|
stack:
|
||
|
.word 0
|
||
|
reset:
|
||
|
.word 0
|
||
|
dst_addr:
|
||
|
.word 0
|
||
|
src_addr:
|
||
|
.word 0
|
||
|
words:
|
||
|
.word 0
|