我的問題是關於我應該如何避免使用僞指令,如la
和li
。許多互聯網資源只是使用僞指令,這在某種程度上讓我感到困惑。 我的問題的一部分是這段代碼出了什麼問題。模擬器在liu
指令中發現語法錯誤,我不明白髮生了什麼問題。MIPS繞過使用僞指令,出了什麼問題?
根據我的理解,liu
命令抓取有效位,向左移位16位,並將其放入寄存器($ a0)。 ori
指令獲取標籤,並在低16位上執行或操作,將其有效地添加到寄存器中。
.data
m1: .asciiz "Some string"
.text
main:
lui $a0, m1 # loads m1 into $a0 to be printed
ori $a0, $a0, m1
我不是應該使用liu
或ori
標籤M1?如果我不是這個意思,我該怎麼做?
我已經讀過this,我明白了什麼是應該發生的事情,但我仍然不知道,爲什麼我的指令具有不同的效果,爲什麼還有就是liu
和ori
命令前andi $a0,$a0,0x0000ffff
。
我使用的MIPS模擬器是QtSpim,如果這是相關的。 我已經在這裏和其他地方尋找這個問題的答案,我沒有理解他們。 任何幫助/更正將是美好的。
感謝您的幫助!你已經清除了錯誤,並以簡單的方式解釋了邏輯! – SamSam