je dois écrire un programme SPIM qui permet de recopier les éléments d'une table source Tab1 dans une table destination Tab2 en ordre inverse et faire la somme des éléments de cette dernière table et mettre le résultat dans la case mémoire Somm avec affichage sur écran de ce résultat.
Tab1: .word 45,128,47,89,300,200,7,7,11,44
Tab2: .word 0,0,0,0,0,0,0,0,0,0
Voilà mon essai, qui est d'un niveau très débutant, je vous serez reconnaissante si vous m'aidez à corriger les fautes. merci
Code :
1
2
3
4
5
6
7
8
9
10
11
12
li $2, 9
lw $3, Tstart($2) #en supposant que tab1 débute à Tstart
li $4, 0
lw $5, Tstart1($4) #en supposant que tab2 débute à Tstart1
inverse: beq $2, $zéro, sortie
           sw $5, Tstart($2)
           add Somm, $0, Tstart($2)
           sub $2, $2, 1
           add $4, $4, 1
           j inverse
sortie: li $v0, Somm
syscall
Voila des points que je n'arrive pas à savoir comment les coder:
1- comment accéder à l'adresse de début du tableau Tab1 (ou Tab2)
2- comment afficher la somme?
3- est ce qu'il faut incrémenter i de 4 bit pour passer d'une case à une autre? avec i: compteur case tableau