" MIPS运行时错误无法直接写入文本段"?

时间:2015-02-24 23:46:09

标签: assembly runtime-error mips

我试图将某些内容存储到内存地址中并遇到此错误。

这是我正在做的事情的一个例子:

sll $ 11,$ 10,2 #register $ 10 for this loop包含1

mflo $ 9#来自之前的计算答案                     #位于sll指令部分正上方

sw $ 9,0($ 11)#store answer in memory address ERROR occured

我尝试通过存储在不同的寄存器来解决它,确保我要使用的内存地址为空等等但似乎没有任何工作......如果你们遇到过这个问题,那就是你做了什么来解决它?

感谢所有帮助

1 个答案:

答案 0 :(得分:0)

问题非常简单: $ 11 不指向可写内存。 $ 11 的值为4(1<<2)。您没有显示足够的代码,但我认为您初始化 $ 11 指向可写区域,然后使用SLL指令覆盖它。也许你的意思是这样的:

; Here $11 must contain an address of a writable memory area

SLL $12, $10, 2    ; $12 = $10[offset] * 4
ADD $12, $11, $12  ; $12 = $11[base] + offset*4
SW  $9, 0($12)     ; store $9 at at base+offset*4