Assembly 如何在MIPS程序集中查找字符串中的字符
我是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
“?”
但是,例如,当我输入类似于“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