# i in register $t0 # registers $t1..$t3 used to hold calculations main: li $t0, 0 # i = 0 loop1: bge $t0, 5, end1 # while (i < 5) { mul $t1, $t0, 4 # la $t2, numbers # calculate &numbers[i] add $t1, $t1, $t2 # lw $t3, ($t1) # load numbers[i] into $t3 mul $t3, $t3, 42 # numbers[i] *= 42; sw $t3, ($t1) # store scaled number in array addi $t0, $t0, 1 # i++; b loop1 end1: li $t0, 0 loop2: bge $t0, 5, done # while (i < 5) { mul $t1, $t0, 4 # printf("%d", numbers[i]) la $t2, numbers # calculate &numbers[i] add $t1, $t1, $t2 # lw $a0, ($t1) # load numbers[i] into $a0 li $v0, 1 syscall li $a0, '\n' # printf("%c", '\n'); li $v0, 11 syscall addi $t0, $t0, 1 # i++ b loop2 done: li $v0, 0 # return 0 jr $ra .data numbers: .word 3,1,4,1,5 # int numbers[5] = {3,1,4,1,5}; string0: .asciiz "Enter a number: "