# i in register $t0 # registers $t1..$t3 used to hold calculations main: li $t0, 0 # i = 0 loop0: bge $t0, 10, end0 # while (i < 10) { la $a0, string0 # printf("Enter a number: "); li $v0, 4 syscall li $v0, 5 # scanf("%d", &numbers[i]); syscall # mul $t1, $t0, 4 # calculate &numbers[i] la $t2, numbers # add $t1, $t1, $t2 # sw $v0, ($t1) # store entered number in array addi $t0, $t0, 1 # i++; b loop0 end0: li $t0, 0 # i = 0 loop1: bge $t0, 10, end1 # while (i < 10) { 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, 10, done # while (i < 10) { 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: .space 40 # int numbers[10]; string0: .asciiz "Enter a number: "