我是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
答案 0 :(得分:2)
你正在使用print_string
系统调用,它在找到NUL终结符之前不会停止。
如果您只想打印单个字符,最好使用print_character
系统调用(11);即替换
move $a0,$t1
li $v0,4
与
lb $a0,($t1)
li $v0,11