2012-10-03 123 views
0

我正在编写一个用户输入字符串的程序。该字符串默认存储在$ v0寄存器中,但是我想将$ v0中的数据复制到String标签,所以如果我在程序中将$ v0用于其他目的,则用户输入不会损坏。我弄清楚如何去做。如果有人能告诉我如何去做,我会很高兴。如何在字符串标签中存储字符串

问候

+0

哪'syscall'是你在用吗?你可以发布你到目前为止的任何代码吗? –

回答

0

垃圾消息,服务于读出来自用户的字符串是服务,这需要作为参数:

  • $a0:一个指向缓冲区的指针,其中字符串将写入
  • $a1:缓冲区的大小

一旦系统调用的回报,缓冲区将与输入文本(最多至最大的$a1字节)被ovewritten,$v0不受影响

实例:

.data 
buffer: .space 128 

.text 
    la $a0, buffer 
    li $a1, 128 # maximum number of bytes to be read 
    li $v0, 8 
    syscall 
+0

li $ a1,128在做什么?你从哪里将用户输入从$ v0复制到缓冲区? – user1698102

+0

@ user1698102:从键盘读取一个字符串的'syscall'在'$ a0'中接收一个指向将存储字符串的缓冲区的指针,并在'$ a1'中接收该缓冲区的大小(也就是最大数量字节从控制台读取)。您不必使用'$ v0'从键盘读取字符串。请注意'$ v0'只是另一个寄存器(32位宽),所以它实际上不能保存实际读取的字符串。 – gusbro