2016-10-25 5 views
0

$ a1 및 $ a2 레지스터가 어떤 작업을하는지 이해할 수 없습니다. 이 책 http://spimsimulator.sourceforge.net/HP_AppA.pdf에는 $ a1 또는 $ a2에서 1 또는 0을 의미하는 설명이 없습니다. $ a0 = filename (문자열), $ a1 = 플래그, $ a2 = 모드 만 있습니다. 어떤 플래그와 모드가 있습니까? 설명이 없습니다. 이 코드에서 예를 들어 :

#write on file 
#open 
li $v0, 13  # system call for open file 
la $a0, fout # load address of output file 
li $a1, 1  # Open for reading 
li $a2, 0  
syscall   # open a file (file descriptor returned in $v0) 
move $s6, $v0 # save the file descriptor 

#write 
li $v0, 15  # system call for write to file 
move $a0, $s6 # file descriptor 
la $a1, buffer # address of buffer which to write 
li $a2, 30  # buffer length 
syscall   # write to file 

#close 
li $v0, 16  # system call for close file 
move $a0, $s6 # file descriptor to close 
syscall   # close file 
+0

나는 li $ a1, 0x41 및 li $ a2, 0x1FF를 쓰지 않고 기존 파일에 쓰기도하지만이 플래그를 찾을 수있는 곳을 모르겠다. – Dmitry

답변

0

나는이 (소스 코드에서 제외) SPIM을 위해 어디서나 설명되어 있는지 알고 있지만, MARS에 대한 진정한해야 다음하지 않습니다

flags: 0 = read-only 
     1 = write-only with create 
     9 = write-only with create and append 

mode: Ignored. 

편집 : 나는 및 $a2flagsmode-open으로 전달하는 것으로 보입니다.