; ; CPE 221 Assembly Example ; ; This program adds two arrays, value by value and ; stores each result in another array. ; ; ; int main() ; { ; const int size = 23; ; char x[size] = {"ARM programming is fun"}; ; char y[size]; ; int i; ; for (i = 0; i < size; i++) ; y[i] = x[i]; ; } ; AREA COPY_STRING, CODE, READONLY, ALIGN = 5 ENTRY ADR r0, x ; pointer to first element of x ADR r1, y ; pointer to first element of y LDR r3, size ; holds size of arrays LDR r4, i ; holds loop counter loop CMP r4, r3 ; compute i - size BPL done ; if i - size >= 0, done LDRB r5, [r0], #1 ; r5 = x[i] STRB r5, [r1], #1 ; store result in z[i] ADD r4, r4, #1 B loop done B done AREA COPY_STRING, DATA, READWRITE size DCD 23 i DCD 0 x DCB "ARM Programming is fun", '\0' ALIGN y SPACE 23 END