1

MIPS で既知の長さを持つユーザー入力文字列で特定の文字を見つけるにはどうすればよいですか? 私はSOや他の多くのWebサイトを見てきましたが、ユーザーが入力したデータを操作する方法を根本的に説明しているようには見えません。

これが私がこれまでに持っているものです:

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 に答える