2013-05-15 41 views
0
.data: 
str2: .space 20 

#read string 

la $a0,str2 
li $a1,20 
li $v0,8 
syscall 

#print string 

la $a0, str2 
li $v0, 4 
syscall 


#print string 

    la $a0, str2 
    li $v0, 4 
    syscall 

结果:MIPS打印字符串,这是红色的没有休息

EXAMPLETEX

(?我不想要这打破了...我如何删除IT)

EXAMPLETEXT

- 程序运行完毕(下降) -

回答

0

您的问题是服务8输入字符串的末尾添加一个新行,所以你必须以空字节来代替它(0) 添加该代码读取STR2系统调用后:

# remove trailing newline 
    li $a3, '\n' 
newlineloop: 
    beqz $a1, newlineloopend 
    subu $a1, $a1, 1 
    lb $a2, str2($a1) 
    bne $a2, $a3, newlineloop 
    li $a3, 0 
    sb $a3, str2($a1) 
newlineloopend: 

它将搜索该换行符并将其替换为空字节