Bonjour,
j'ai un devoir à rendre en langage assembleur mais je ne comprends pas vraiment tout ça. J'ai fait des recherches par-ci par-la et je suis arrivé à un programme qui me semble bien - mais il ne marche pas. Pourriez-vous me dire mes erreurs (ce que je cherche à faire ne correspond pas à ce que j'écris) et/ou des pistes svp ?
Je veux donc me retrouver avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 .data .word source: 1 2 3 4 0 6 7 destination : 0 1 1 1 1 1 1 .text la $a0 source ; (Je mets l'adresse de source dans $a0) la $a1 destination ; (Je mets l'adresse de destination dans $a1) la $vo 0 ; (Je déclare un compteur à 0) loop: ; (Je fais une boucle) lw $a1 ($a0) ; (Je copie le contenu de $a0 dans $a1) addi $v0 $v0 1 ; (J'augmente $v0 de 1 : $v0 = $v0 + 1) addi $a0 $a0 4 ; (J'augmente $a0 de 4 ce qui correspond à un mot) addi $a1 $a1 4 ; (J'augmente $a1 de 4 ce qui correspond à un mot) if: bne $a0 0 loop ; (Je vérifie que $a0 est différent de 0 et sinon je retourne à loop) end: ; (Si $a0 vaut 0 il ne va pas à loop et je fini mon loop)
destination : 1 2 3 4 1 1 1
source : 1 2 3 4 0 6 7
$v0 : 4
Merci d'avance
Edit : Désolé, j'avais interverti destination et source... ils sont maintenant conformes à ce que je veux obtenir.
Partager