2013-05-15 77 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: 

它將搜索該換行符並將其替換爲空字節