0
我想寫一個比較字符串函數,但是當我從一個地址加載一個字符到一個寄存器時,我遇到了問題。錯誤是:彙編mips指令lbu
線516:運行時異常在0x00400600:地址超出範圍0x6972614d
該錯誤是在指令lbu $t4,($t5)
。 $t5
包含通過指令la $t5,name0
傳遞的地址。
search_name:
lbu $t4,($t5)
lbu $t2,0($t6)
beq $t2,10,search_surname
bne $t2,$t4,loop_search
addi $t6,$t6,1
addi $t5,$t5,1
j search_name
我想你應該發佈[MCVE](http://stackoverflow.com/help/mcve)。 – MikeCAT
儘管我對MIPS的使用並不是非常有經驗,但我不認爲錯誤出現在代碼的這一部分。您似乎更有可能傳遞錯誤的地址,或者有非法數據導致它讀出邊界。 (考慮到不對齊的地址,後者似乎不太可能) – Dolda2000
另外,如果你不介意我問,你確定'0x00400600'是'lbu'指令嗎?這個地址似乎很好地符合任何隨機指令。當然,既可能是一個誠實的巧合,也可能是程序組織,但似乎值得驗證。 – Dolda2000