如何在用户输入的字符串中找到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
答案 0 :(得分: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: