-1

根据用户输入的整数,我设置所需的字节数并将值放入寄存器 $s7。

li $v0,9
lw $a0,$s7      
syscall
#store the memory address of allocated memory

但是,当我尝试使用 MARS 运行代码时,它说第二行存在语法错误。

我做错了什么,我该如何解决这个问题?我也试过:

li $a0,$s7

更新:我想我修好了,我只需要:

lw $a0,($s7)

MIPS,我恨你。

更新2:我有另一个问题......如果我尝试使用带有偏移量的sw保存,我该怎么做?

sw $a0,$s7($s1)

给我一个错误,将 $s7 放在括号中不会让我摆脱这个错误。

4

1 回答 1

0

关于更新的问题:您确定 MIPS 具有内存寻址模式,例如$r1($r2)?复习你的教程并检查(除非你使用一些 MIPS 的扩展版本,它通常作为实现任务给出,并且通常会导致你在上面描述的强烈感觉)。

如果没有,因为大多数 RISC 语言不允许这样做,您将不得不找到另一种方式,更手动,添加 $s1 和 $s7。我可以建议add吗?

于 2013-09-29T23:45:00.730 回答