.data #数据段
sentence:.byte 0:100
size: .word 100
found:.asciiz "
Success! Location: "
notfound:.asciiz "
Fail!
"
.text #代码段
li $s1,'
'
la $a0,sentence
la $a1,size
lw $a1,0($a1)
li $v0,8 #读入字符串,存在a0所指的地址处,长度存在a1
syscall
read:
li $v0,12 #读入字符,存在v0所指的地址处
syscall
beq $v0,'?' end #输入终止符后退出
li $t1,0
lb $s3,sentence($t1)
loop:
addi $t1,$t1,1
beq $v0,$s3,success #如果找到了,输出
lb $s3,sentence($t1)
beq $s1,$s3,failure
j loop
success: #找到了该字符
#xxxxxxxxxx
la $a0,found
li $v0,4
syscall
move $a0,$t1 #输出当前所在位置
li $v0,1
syscall
li $a0,'
' #输出回车
li $v0,11
syscall
j read
failure: #没有找到该字符
la $a0,notfound
li $v0,4
syscall
j read
end: #结束程序
li $v0,10
syscall