Ich habe ein Problem mit meinem MIPS-Code ... Ich würde die Vorkommen in einer Zeichenfolge von der Tastatur ohne ein Zeichen zum Vergleich übergeben. Ich habe die Zeichenfolge im Stapel (Stapel -255 Position) und ein Array im .data-Abschnitt, um die Vorkommen zu speichern. Die Grundidee ist, dass ich einen Brief vom Stapel eins nach dem anderen mit einer Schleife (lb $ t1, ($ a0) t1 = ASCII-Code des Buchstabens - a0 = Stapel an der Funktion übergeben), subtrahiere die gelesenen Buchstaben aus dem Stapel mit 97 (97 = a) und erhalten Sie den Index des Arrays und mit einer anderen Schleife, zählen Sie die Vorkommen und speichern Sie diese unter dem zuvor berechneten Index. Offensichtlich hat das Array 104 Positionen (26 Buchstaben * 4, weil ich die Anzahl der Vorkommen speichern würde). Das Problem ist, dass, wenn ich den Index meiner Array-Position finde und ich innerhalb der Position speichern würde die Vorkommen mit sw $ -, myArray ($ -) Mars diesen Fehler geben: Runtime Ausnahme bei 0x0040007c: Geschäftsadresse nicht ausgerichtet auf Wortgrenze 0x10010087 Ich habe versucht, .align in der .data Abschnitt hinzuzufügen, aber ich habe keine Lösung gefunden, vielleicht habe ich ein paar Dinge falsch ... Irgendwelche Hilfe?Warum habe ich den Fehler "Adresse nicht auf Wortgrenze ausgerichtet"
Dies ist mein Code:
analizza_stringa: (function)
while_string:
# load a byte from the stack
lb $t0, ($a0)
#check end string
beq $t0, $zero, end
#check a line feed
beq $t0, 10, end
#array index
subi $t3, $t0, 97
#Multiply by 4 (I would save number)
mul $t4, $t3, 4
while_occorrenza:
#like before
beq $t1, 10, continue
#load a letter like before
lb $t1,($a0)
#Check the occurrences
bne $t1, $t0, continue2
#add 1 at the occurrences
addi $t5, $t5, 1
continue2:
#add 1 for the pointer at the string
addi $a0, $a0, 1
#Repeat
j while_occorrenza
continue:
#Save the number under the index calculated before
sw $t5, myArray($t4)
#counter=0 for another loop
li $t3, 0
#next character
addi $a0, $a0, 1
# repeat the first loop
j while_string
end:
jr $ra
Vielen Dank Michael !!! Jetzt kann ich meine Vorkommen im Array speichern. Danke, danke! – Marco