Ich habe gerade angefangen zu programmieren MIPS assembly
und ich habe ein paar Fragen dazu.Drucken einer Zeichenfolge (Assembly)
Zuerst mein Code:
.data
word1: .ascii "Hello"
word2: .ascii " World"
word3: .ascii "!"
.text
main:
#lw $t0, word1
#lw $t1, word2
#lw $t2, word3
li $v0, 4
la $a0, word1
syscall
la $a0, word2
syscall
la $a0, word3
syscall
Ich möchte fragen, warum habe ich eine Nachricht
Runtime exception at 0x0040000c: fetch address not aligned on word boundary 0x10010005
während ich versuche, ein zweites Wort (word2) zu laden? (Ich weiß, dass ich keinen String laden muss.)
Zweitens wird dieser Code Ausgabe "Hallo Welt! Welt!" - Wort1 Wort2 Wort3 Wort2 Wort3 Wort3.
Wenn ich die 10. und 11. Zeile des Codes kommentiere (andere Wörter laden), wird der Ausgang Hello World!
statt Hello
sein.
Warum passiert es? Ich möchte nur ein Wort drucken, nicht drei gleichzeitig.
Vielen Dank im Voraus!
Fügen Sie Ihren Strings ein ", 0" hinzu, um dem Betriebssystem mitzuteilen, wo die Wörter stehen – Tommylee2k
In MIPS können Sie nicht von falsch ausgerichteten Adressen lesen. Das sagt Ihnen die Fehlermeldung. – fuz