2013-11-02 81 views
1

我是新来的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 

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

li $v0,10 
syscall 
+0

这就是你除了“C”输出问号的问题? –

回答

2

您正在使用的系统调用print_string,这不会停止,直到它找到一个NUL终止。

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

move $a0,$t1 
li $v0,4 

lb $a0,($t1) 
li $v0,11