Ok, so dass ich diese einfache MIPS32 Programm haben:Fetch-Adresse nicht auf Wortgrenze ausgerichtet sind, MIPS32
.text
.globl main
main:
lw $s3,10
move $a0,$s3
li $v0,1
syscall
li $v0,10
syscall #program termination
Alles, was ich tun möchte, ist $ s3 Nummer 10 zu laden, um zu registrieren, und dann drucken it.Mars diese assembliert aber ohne Fehler, wenn ich laufen treffen bekomme ich folgende Fehlermeldung:
Runtime exception at 0x00400000: fetch address not aligned on word boundary 0x0000000a
ich verstehe, es ist etwas falsch mit dem
lw $s3,10
Befehl, aber ich nicht wirklich, wie es zu beheben.Was ich nicht verstehe, ist der Fehler: holen Adresse nicht auf Wortgrenze ausgerichtet. Was bedeutet das? Und warum passiert es?
Sie können nur aus wortausgerichteten Speicheradressen lesen. Auf MIPS32 sind Wörter 4 Bytes. Also muss die Speicheradresse 4-Byte-ausgerichtet sein. –