2017-10-08 2 views
0

J'essaie de lire et d'imprimer le contenu d'un fichier .txt.
Plus tard, je voudrais lire le fichier de mips aussi bien.
Je vois le code et il semble ok, mais rien n'outputed ...Lecture et impression du contenu d'un fichier txt à l'aide de Mips Assembly

.data 
myFile: .asciiz "teste.txt"  # filename for input 
buffer: .space 1024 
.text 

# Open file for reading 

li $v0, 13   # system call for open file 
la $a0, myFile  # input file name 
li $a1, 0   # flag for reading 
li $a2, 0   # mode is ignored 
syscall    # open a file 
move $s0, $v0   # save the file descriptor 


# reading from file just opened 

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


# Printing File Content 
li $v0, 4   # system Call for PRINT STRING 
la $a0, buffer  # buffer contains the values 
syscall    # print int 

li $v0, 10  # Finish the Program 
syscall 
+0

pas à pas votre code dans le débogueur. Vérifiez les valeurs de retour syscall (dans le débogueur) pour les erreurs. Ou mieux, tracez les appels système. IDK si MARS ou SPIM ont cela, mais Linux le fait ('strace'). Bien sûr, Linux utilise différents appels système que MARS ou SPIM. –

+0

Quoi qu'il en soit, ce serait un bien meilleur [mcve] si vous incluez des valeurs de registre du débogueur à divers points. –

+0

Merci pour l'aide. Mais je n'ai aucune idée de comment débiter mon code ici, biseds le F3 + F7, F7, F7 ... Aussi, est-il un moyen d'être sûr que le fichier est lu correctement? Parce que même si je change le nom du fichier en un invalide, il n'y a pas d'erreur/avertissement affiché ... – PlayHardGoPro

Répondre

1

Le problème était sur le path de mon dossier.
Je pensais que le chemin commencerait à partir du code source, mais il commence à partir du fichier .jar.

Tout ce que je devais faire est de fournir un fullPath double \\

.data 
myFile: .asciiz "c:\\Users\\johnDoe\\Documents\\Assembly\\test.txt" # filename for input