Assembly 如何使用寄存器中存储的字节数分配内存?

Assembly 如何使用寄存器中存储的字节数分配内存?,assembly,mips,system-calls,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) 迈克,我恨你 更新2:我还有一个问题。。。如果我尝试使用带偏移量的sw进行

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

li $v0,9
lw $a0,$s7      
syscall
#store the memory address of allocated memory
然而,当我尝试使用MARS运行代码时,它说第二行有语法错误

我做错了什么?我怎样才能避免这种情况?我也试过:

li $a0,$s7
更新:我想我已经修好了,我只需要:

lw $a0,($s7)
迈克,我恨你

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

sw $a0,$s7($s1)

给我一个错误,将$s7放在括号中并不能使我摆脱这个问题。

关于更新的问题:您确定MIPS具有内存寻址模式,如
$r1($r2)
?仔细阅读您的教程并检查(除非您使用一些扩展版的MIPS,这些MIPS通常作为实现任务提供,并且常常导致您在上面描述的强烈感受)

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