1

我是 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
4

1 回答 1

2

您正在使用print_string系统调用,它在找到 NUL 终止符之前不会停止。

如果您只想打印单个字符,最好使用print_character系统调用 (11);即替换

move $a0,$t1 
li $v0,4

lb $a0,($t1)
li $v0,11
于 2013-11-03T08:53:02.893 回答