SVP j'ai deux vecteurs A et B de dimensions N de naturels codés sur 32 bits et SUM est une variable entier naturel codée également sur 32 bits.
Je veux coder en assembleur le produit scalaire de A et B où le résultat placé dans SUM. C'est ce que j'ai fait:
Code : Tout sélectionner
addi $s0,$s0,0 //i=0
addi $s1,$zero,N //i<N
addi $s11,$s11,0 //SUM=0
Loop: lw $s8, 0($s5) //le registre $s5 contient adresse de A
lw $s9, 0($s6) //le registre $s6 contient adresse de B
mul $s10,$s8,$s9 //A[i]*B[i]
add $s11,$s11,$s10 //SUM+=A[i]*B[i]
addi $s8,$s8,4 //registre incrémenté de la taille d'un mot et contient adresse du suivant
addi $s9,$s9,4
addi $s0,$s0,1 //i++
bne $s0,$s1, Loop
Déjà je ne sais pas si le code est juste.
Sinon ma question est : quelle sera la différence au niveau du code si c'est pour un processeur monocycle, multicycle ou pipeline? Egalement pour un pipeline sans/avec prédiction de branchement?
!
