如何分配存储在寄存器中的字节数的内存?

时间:2013-09-29 22:13:49

标签: assembly mips system-calls

根据用户的整数输入,我设置所需的字节数并将值放在寄存器$ 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不会让我离开这个。

1 个答案:

答案 0 :(得分:0)

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

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