Bueno, yo he tocado mas el ensamblador de intel y del z80 pero intentaré echarte una mano.
Yo lo veo todo muy bien excepto dos lineas
Código:
lw $t0, 0($a0) # $t0 <-- a0[i]
lw $t1, 0($a1) # $t1 <-- a1[i]
Corrigeme si me equivoco en algun momento, vale? :)
Tu usas como variable "i" al registro $t0 y $a0 e $a1 son punteros a los vectores a tratar. Yo, lo que veo en tu codigo es que aumentas el valor de "i" ($t0) pero siempre accedes a la misma posición del vector, puesto que no mueves el puntero $a0/$a1.
No se si me he explicado :)