2013-04-04 4 views
1

에 메시지를 인쇄 내 프로그램에서 다음 코드는는 MIPS

li $v1, 4    #system call code for Print String 
la $a0, LC    #load address of message into $a0 
syscall    #print the string 
li $v1, 1    #system call code for Print Integer 
move $a0, $v0   #move value to be printed to $a0 
syscall    #print result 

.rdata 
LC: .asciiz "The factorial of 10 is : " 

하지만 말합니다있다 :

알 수없는 시스템 호출 : 3628800

여기서 3628800은 인쇄하고 싶은 결과입니다!

무엇이 잘못 되었나요? 대신 jal printf를 사용할 수 있습니까? 어떻게 작성해야합니까? 미리 감사드립니다.

답변

1

시스템 호출 번호는 $v1이 아니라 $v0입니다.

+0

감사합니다. 저는 어셈블리와 밉스를 처음 사용하기 때문에 사용해야하는 특정 레지스터가 있는지 몰랐습니다. printf 사용에 대한 모든 아이디어 ??? – Controller