输出相同的字符串输入

时间:2014-02-08 11:27:31

标签: mips

假设我想输出我插入的相同字符串,我会使用以下

main:

la $a0,buffer #allocate space for $a0

li $v0,8 #read the string input 
syscall

li $v0, 4 #print the string input 
syscall

li $v0,10 #stop the program
syscall

嗯,那不行,我必须添加

li $a1,.. 

我不知道为什么?

1 个答案:

答案 0 :(得分:1)

请参阅MARS / spim系统调用文档here

对于系统调用8,您需要在$a0中指定缓冲区地址,并在$a1中指定长度。我的猜测是上面的代码不起作用,因为程序以$a1预设为零开始,意味着你将读取0字节。

另外,你对第一行的评论是错误的。使用la不会分配空间。这应该在我认为已定义text标签的buffer段中完成。使用la仅将标签buffer的地址加载到寄存器中。