我剛開始編程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
我想問爲什麼我的消息
Runtime exception at 0x0040000c: fetch address not aligned on word boundary 0x10010005
,而我試圖加載第二個字詞(字詞)? (我知道我沒有加載字符串。)
其次,此代碼的輸出將是「Hello World!World !!」 - word1 word2 word3 word2 word3 word3。
如果我評論第10行和第11行代碼(加載其他單詞),輸出將是Hello World!
而不是Hello
。
爲什麼會發生?我只想打印一個字,而不是一次打印三個字。
提前致謝!
附加一個「,0」給你的字符串,告訴操作系統停止字的位置 – Tommylee2k
在MIPS中,你不能讀取未對齊的地址。這就是錯誤信息告訴你的。 – fuz