Sto provando a memorizzare l'input dell'utente in un array, ma quando uso sw ottengo un errore "indirizzo del negozio non allineato al limite della parola". Il mio obiettivo è quello di leggere in 10 numeri interi dalla matrice, ma dopo aver inserito la prima cifra ottengo un errore nel comando sw. Non so cosa sto facendo male ho passato un paio d'ore cercando di capirlo. Qualsiasi aiuto sarà molto apprezzato e contrassegnato come utile.MIPS - Memorizzare gli input nell'array dall'input dell'utente
.data
mess: .asciiz " Enter 10 numbers to be stored in the array. "
array: .space 40 #10 element integer array
.globl main
.text
main:
jal read
b done
read:
la $t0, 0 #count variable
b readLoop
jr $ra
readLoop:
beq $t0, 40, read #branch if equal to 40, 10 items
li $v0, 4 #Print string
la $a0, mess #load prompt
syscall
li $v0, 5 #read int
syscall
sw $v0, array #store input in array ERROR HERE
addi $t0, $t0, 4 #add by 4 to count
b readLoop
print:
done:
Questo ha funzionato per me. Non so il motivo per cui non funziona sopra
.data
list: .space 16
.globl main
.text
main:
li $v0, 5
syscall
sw $v0, list
move $a0, $v0
li $v0, 1
syscall
Questo non ha cambiato nulla .Grazie per rispondere però. –
Hai ricevuto qualche errore di compilazione? '.p2align 2' dovrebbe allineare il seguente codice/dati su un indirizzo che è una potenza di 2 (2^2 = 4 qui). Cosa succede se aggiungi uno o tre caratteri extra alla stringa 'mess'? Questo potrebbe correggere anche l'allineamento di 'array'. –