プログラミングを開始したばかりのMIPS assembly
と私はそれについていくつか質問があります。文字列の印刷(アセンブリ)
まず、私のコード:
.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
私は2番目の単語(WORD2)をロードしようとしている間、私のメッセージ
Runtime exception at 0x0040000c: fetch address not aligned on word boundary 0x10010005
持っている理由お聞きしたいですか? (私は文字列をロードしていないことを知っています)
次に、このコードの出力は "Hello World!World !!"になります。 - word1 word2 word3 word2 word3 word3。
コードの第10行と第11行(他の単語を読み込む)にコメントすると、出力はHello
の代わりにHello World!
になります。
どうしてですか?私はちょうど3つではなく、1つの単語を印刷したい。
ありがとうございます!
"、0"を文字列に追加して、OSに単語の停止先を教えてください – Tommylee2k
MIPSでは、整列していないアドレスを読み取ることはできません。エラーメッセージがあなたに伝えていることです。 – fuz