; ; CPE 221 Assembly Example ; ; This program adds a scalar value to all the elements in one ; array and stores that in another array. ; ; ; .org 200 size: .dc 10 array1: .dc 100, 3, -1, 2, 4, 4, 2, -1, 3, 100 array2: .dc -53, 247, 95, -7, 481, 91, -33, 1500, 29, -83 array3: .dw 10 i: .dc 0 orig: .org 1000 la r29, loop la r28, done la r10, array1 ; pointer to first element of array1 la r11, array2 ; pointer to first element of array2 la r12, array3 ; pointer to first element of array3 ld r1, size ; holds size of arrays ld r2, i ; holds loop counter loop: sub r3, r2, r1 ; compute i - size brpl r28, r3 ; if i - size >= 0, done ld r3, 0(r10) ; r3 = array1[i] ld r4, 0(r11) ; r4 = array2[i] add r4, r4, r3 ; r4 = array1[i] + array2[i] st r4, 0(r12) ; Store result in array3. addi r10, r10, 4 ; update r10 to point to next element of array1 addi r11, r11, 4 ; update r11 to point to next element of array2 addi r12, r12, 4 ; update r12 to poitn to next element of array3 addi r2, r2, 1 ; i++ br r29 done: stop