la $a0, array # load array address into $a
printArray: addi $sp, $sp, -4 # make room on stack
sw $a0, 0($sp) # push $a0 onto the stack
add $t0, $zero, $zero # set loop counter to zero
add $t1, $a0, $zero # put array address in t1
FOR_LOOP: beq $t0, $a1, EXIT # for loop equality check, $a1 is n parameter
lw $a0, $t1
li $v0, 1 # print the current int of the array
syscall #
addi $t0, $t0, 1 # increment loop counter by 1
addi $t1, $t0, 4 # advance to next array element
j FOR_LOOP # jump to beginning of loop (start new iteration)
EXIT: # end of printArray's for loop
lw $a0, 0($sp) # pop $a0 off the stack
addi $sp, $sp, 4 # "deallocate" stack memory
jr $ra # return control flow to main