1

如何在 MIPS 中已知长度的用户输入字符串中找到特定字符?我看过 SO 以及许多其他网站,但是,似乎没有一个可以从根本上解释如何操作用户输入的数据。

这是我到目前为止所拥有的:

A_string: 
.space 11
buffer:
asciiz"Is this inputed string 10 chars long?"
main: 

la $a0, buffer
li $v0, 4
syscall

li $v0, 8
la $a0, A_string
li $a1, 11
syscall
4

1 回答 1

4

您必须遍历读取缓冲区以查找所需的特定字符。

例如,假设您想'x'在输入数据中查找字符,并假设此代码段放在您的代码之后,因此$a1已经读取了最大数量的字符。您必须从缓冲区的开头开始并迭代,直到找到您期望的字符或者您已经遍历了整个缓冲区:

  xor $a0, $a0, $a0
search:  
  lbu $a2, A_string($a0)
  beq $a2, 'x', found    # We are looking for character 'x'
  addiu $a0, $a0, 1
  bne $a0, $a1, search
not_found:
    # Code here is executed if the character is not found
    b done
found:
    # Code here is executed if the character is found
done:
于 2013-01-24T14:55:26.073 回答