; ; CPE 221 Assembly Example ; ; This program adds a scalar value to all the elements in one ; array and stores that in another array. ; ;int main() ;{ ; const int size = 10; ; int x[size] = {13000, 298, -4729, 698, -2700, 5267, -1, 32641}; ; int y[size]; ; int a = 157; ; int i; ; for (i = 0; i < size; i++) ; y[i] = x[i] + a; ;} ; AREA ARRAY_PLUS_SCALAR, CODE, READWRITE ENTRY ADR r0, x ; pointer to first element of x ADR r1, y ; pointer to first element of y LDR r2, size ; holds size of arrays LDR r3, i ; holds loop counter LDR r5, a ; holds a loop SUBS r4, r3, r2 ; compute i - size BPL done ; if i - size >= 0, done LDR r4, [r0] ; r4 = array0[i] ADD r4, r4, r5 ; r4 = array0[i] + a STR r4, [r1] ; array1[i] = array0[i] + a ADD r0, r0, #4 ; update r0 to point to next element of array0 ADD r1, r1, #4 ; update r1 to point to next element of array1 ADD r3, r3, #1 ; i++ B loop done B done size DCD 8 a DCD 157 x DCD 13000, 298, -4729, 698, -2700, 5267, -1, 32641 y SPACE 32 i DCD 0 END