2012-11-25 44 views
2

我想一個.asciiz參數加載到寄存器.asciiz LW,我得到一個錯誤,
代碼:MIPS從數據

.data 


    stp: 
    .asciiz "stop" 

.text 

.globl main 

main: 

la $t1, stp 
lw $t1, 0($t1) 

我得到一個異常:在研究所對齊地址/ data fetch,

有沒有辦法將.ascii加載到寄存器中作爲單詞?

我想比較輸入變量與保存在stp中的文本,
我在做什麼錯了?

回答

3

您可能需要lblbu指令分別爲符號或零擴展字節大小的負載。

如果你想將所有4個字符加載一個字,然後確保該字符串是通過添加適當的彙編指令排列(如.align 2)或者,使用ulw僞指令,你彙編程序會變成正確的順序。

+0

'ulw'如何工作?我找不到關於它的信息 – res

+0

這是一個僞指令,彙編器將用生成的代碼替換它。例如,GNU彙編器會將它變成'LWL'和'LWR'。你當然可以自己編寫相應的代碼。 – Jester

+0

謝謝,雖然我沒有得到我想用'ulw'得到的結果,但'.align n'的確有幫助。 – res