La lecture de fichiers avec MIPS de l'assemblée

Je suis en train d'écrire un programme qui lit les caractères à partir d'une .fichier dat qui correspondent à des couleurs différentes pour être affiché dans le simulateur; x = off, R = rouge, etc. Mon problème est que je ne peux pas comprendre ce que je fais mal avec l'ouverture de la .dat fichier. J'ai regardé et essayé tout ce que je peux penser, mais à chaque fois que je les assembler et de les exécuter, je reçois un -1 dans $v0, ce qui correspond à une erreur. Voici mon code pour l'ouverture/de lecture/de la fermeture du fichier:

.data  
fin: .asciiz "maze1.dat"      # filename for input
buffer: .asciiz ""

.text
#open a file for writing
li   $v0, 13       # system call for open file
la   $a0, fin      # board file name
li   $a1, 0        # Open for reading
li   $a2, 0
syscall            # open a file (file descriptor returned in $v0)
move $s6, $v0      # save the file descriptor 

#read from file
li   $v0, 14       # system call for read from file
move $a0, $s6      # file descriptor 
la   $a1, buffer   # address of buffer to which to read
li   $a2, 1024     # hardcoded buffer length
syscall            # read from file

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

Le fichier maze1.dat est dans le même répertoire que le programme MIPS. Toute aide ou suggestions sont grandement appréciés.

OriginalL'auteur CJ McAllister | 2010-11-10