2013-05-15 1 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를 제거합니까 어떻게 ...이 BREAK를 싶지 않는)

예문

- 프로그램 실행이 끝났습니다 (아래쪽에 내려짐) -

답변

0

귀하의 문제는 서비스 (8)는 입력 문자열의 끝에서 줄 바꿈을 추가, 그래서 당신은 (0) STR2 읽는 콜 후이 코드를 추가 null 바이트로 교체해야 :

# 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: 

새 줄 문자를 검색하고이를 null 바이트로 바꿉니다.