# # test data # dim=50 .data xvec: .word 15 .word 16 .word 13 .word 14 .word 15 .word 4 .word 5 .word 9 .word 4 .word 5 .word 9 .word 10 .word 13 .word 14 .word 11 .word 20 .word 8 .word 19 .word 17 .word 6 .word 7 .word 3 .word 11 .word 20 .word 13 .word 14 .word 11 .word 20 .word 8 .word 19 .word 17 .word 6 .word 7 .word 3 .word 8 .word 19 .word 10 .word 1 .word 16 .word 6 .word 7 .word 3 .word 2 .word 12 .word 18 .word 1 .word 2 .word 12 .word 17 .word 18 yvec: .word 2 .word 4 .word 6 .word 7 .word 19 .word 19 .word 2 .word 13 .word 3 .word 17 .word 16 .word 10 .word 9 .word 4 .word 20 .word 15 .word 11 .word 18 .word 14 .word 15 .word 1 .word 20 .word 15 .word 11 .word 18 .word 14 .word 15 .word 1 .word 12 .word 5 .word 8 .word 12 .word 5 .word 8 .word 6 .word 20 .word 1 .word 12 .word 5 .word 13 .word 3 .word 17 .word 16 .word 11 .word 18 .word 14 .word 10 .word 9 .word 8 .word 7 # # test driver # .text .globl main main: subu $sp, $sp, 8 sw $fp, 8($sp) addu $fp, $sp, 8 sw $ra, -4($fp) li $a0, dim la $a1, xvec la $a2, yvec jal dotprod # # Print out the result to the spim console. # If we don't, run-time stub that calls main overwrites $v0 # when it makes the exit syscall # move $t0, $v0 li $v0, 4 la $a0, pre .data pre: .asciiz "Function returned " .text syscall li $v0, 1 move $a0, $t0 syscall li $v0, 4 la $a0, post .data post: .asciiz ".\n" .text syscall lw $ra, -4($fp) lw $fp, 0($fp) addu $sp, 8 jr $ra