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

时间:2013-11-02 21:25:27

标签: 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

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

li $v0,10 
syscall

1 个答案:

答案 0 :(得分:2)

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

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

move $a0,$t1 
li $v0,4

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