.data .text li $v0, 5 # read in num syscall move $s0, $v0 # $s0 is n sll $a0, $v0, 2 li $v0, 9 # malloc syscall move $s1, $v0 # $s1 = a move $t0, $zero # a0 = 0 move $t0, $zero # i = 0 move $t1, $s1 #t1 = a read_in_num: bge $t0, $s0, done_read_in_num # i >= n, break li $v0, 5 # read in num syscall sw $v0, 0($t1) # a[i] = v0 addi $t0, $t0, 1 # i++ addi $t1, $t1, 4 # t1 += 4 j read_in_num done_read_in_num: srl $s2, $s0, 1 # s1 = n / 2 move $t0, $zero # i = 0 move $t1, $s1 subi $t2, $s0, 1 # t2 = n - 1 sll $t2, $t2, 2 # t2 *= 4 add $t2, $t2, $s1 reverse: bge $t0, $s2, done_reverse # i >= n / 2, break lw $t3, 0($t1) # t3 = a[i] addi $t3, $t3, 1 # t3 += 1 lw $t4, 0($t2) # t4 = a[n - i - 1] addi $t4, $t4, 1 # t4 += 1 sw $t4, 0($t1) sw $t3, 0($t2) addi $t0, $t0, 1 addi $t1, $t1, 4 subi $t2, $t2, 4 j reverse done_reverse: move $t0, $zero move $t1, $s1 output: bge $t0, $s0, done_output lw $a0, 0($t1) li $v0, 1 syscall addi $t0, $t0, 1 addi $t1, $t1, 4 j output done_output: li $a0, 0 li $v0, 17 syscall