La création d'accéder à un tableau en MIPS
Je suis en train de créer un tableau en MIPS de l'Assemblée, puis ajouter tous les éléments ensemble. Cependant, lorsque j'essaie de rassembler le suivant, il est dit
Erreur dans read_array ligne 1 en position 7: ".le mot" directive ne peut pas apparaître dans le segment de texte
Assembler: l'opération s'est terminée avec des erreurs.
Voici mon montage:
list: .word 3, 2, 1, 0, 1, 2
li $t0, 0x00000000 #initialize a loop counter to $t0
li $t4, 0x00000005 #last index of array
li $t3, 0x00000000 #this will hold our final sum
la $t1, list #the address of list[0] is in $t1
loop: addi $t0, $t0, 0x00000001 #index++
add $t5, $t0, $t0 #array index X2
add $t5, $t0, $t0 #array index X2 again
add $t6, $t5, $t1 #4x array index in $t6
lw $t2, 0($t6) #load list[index] into $t2
add $t3, $t3, $t2 #$t3 = $t3 + $t2
beq $t0, $t4, end
j loop
end:
Merci!
- Je suis conscient de certaines erreurs logiques dans ce code, mais j'ai eu ma réponse à la question. Merci!
- C'est vraiment bizarre, IDK si cette limitation est volontaire pour protéger les débutants à partir d'un mélange de données avec le code et ayant leur programme de crash lors de l'exécution tombe dans leurs données, ou quoi. Dans la plupart des assembleurs, vous pouvez utiliser
.byte
/.word
oudb
/dd
n'importe où à émettre quelle que soit octets que vous voulez à n'importe quelle position. (par exemple, pour émettre un non-codage par défaut d'une instruction pour une raison quelconque.)
Vous devez vous connecter pour publier un commentaire.
Vous devez mettre cette ligne:
Dans le
.data
section. Cochez cette tutoriel rapide.L'erreur est de vous dire que vous ne pouvez pas mettre de données (.mot 3, 2) dans le segment de code. "Segment de texte" est un vieux terme qui signifie "segment de code" http://en.wikipedia.org/wiki/Code_segment
L'assembleur veut que vous déclarez un segment de données et de mettre le tableau il. Je n'ai jamais fait de Mips assembler, mais je m'attends à être quelque chose comme ceci
.text
plutôt que.code
dans la plupart des assembleurs que j'ai utilisé.