Assembly 如何在MIPS程序集中查找字符串中的字符

Assembly 如何在MIPS程序集中查找字符串中的字符,assembly,mips,Assembly,Mips,我是MIPS汇编的新手,我正在尝试制作一个程序,在“?” 但是,例如,当我输入类似于“abc?”的输入时,输出是“c?”。我找不到我的错误 代码如下: .data buffer: .space 1024 .text .globl main main: la $a0,buffer li $v0,8 syscall la $t1,buffer loop: lb $t2,($t1) beq $t2,'?',loop1 add $t1,$t1,1 j loop loop

我是MIPS汇编的新手,我正在尝试制作一个程序,在
“?”

但是,例如,当我输入类似于
“abc?”
的输入时,输出是
“c?”
。我找不到我的错误

代码如下:

.data 

buffer: .space 1024
.text
.globl main

main:

la $a0,buffer 
li $v0,8 
syscall 


la $t1,buffer 


loop: 
lb $t2,($t1) 
beq $t2,'?',loop1 
add $t1,$t1,1 
j loop

loop1:
sub $t1,$t1,1
move $a0,$t1 
li $v0,4 
syscall 

li $v0,10 
syscall

您正在使用
print\u字符串
syscall,它在找到NUL终止符之前不会停止

如果只想打印单个字符,最好使用
print\u character
syscall(11);i、 e.更换

move $a0,$t1 
li $v0,4


问题是除了“c”之外还输出问号吗?
lb $a0,($t1)
li $v0,11