J'essaye de charger un octet dans un registre dans MIPS. C'est un cours de débutant, donc les instructions avancées ne sont pas encore autorisées. (Aucune boucle, etc.)(ASM) Problème de chargement d'un octet dans un registre
Cependant, il charge une valeur incorrecte.
Je pense que cette ligne est incorrecte:
lb $10,2($8) # load byte 133
Il est en train de charger -123 d'enregistrer 10 $ !?
Dans cette leçon, nous venons tout juste d'apprendre à charger/stocker des octets. Si possible, je fais une erreur avec offset + adresse_base. Bien que, je ne peux pas voir ce que mon erreur est.
Pouvez-vous aider/conseiller? :)
## sum values, compute average, store result in memory ##
## $7=accumulator $8=base address $9=temp $10=temp
## data segment starts at 0x10000000
.data
.byte 12
.byte 97
.byte 133
.byte 82
.byte 236
.text
main:
lui $8,0x1000 # initialise base address
lb $7,0($8) # load byte 12
lb $9,1($8) # load byte 97
ori $10,$0,5 # total amount of integers
lb $10,2($8) # load byte 133
addu $7,$7,$9 # 12+97
lb $9,3($8) # load byte 82
addu $7,$7,$10 # add 133 to subtotal
lb $8,4($8) # load byte 236
addu $7,$7,$9 # add 82 to subtotal
addu $7,$7,$8 # add 236 to subtotal
##calculate average##
div $7,$10 # sum/number of items
mflo $10 # average
sb $10,10($8) # store average in 0x10000010
sll $0,$0,0 # nop for load/store delay
merci. J'avais juste compris cela. – BBedit
@ user2071506: vous pouvez marquer cette réponse comme acceptée si c'est la solution au problème. – Michael