Beim Lesen einer Datei in MIPS wird die letzte Zeile zweimal gelesen

Ich konnte eine Datei in MIPs (teilweise) erfolgreich einlesen. Unten ist mein aktueller Code. In QtSpim erhalte ich beim Ausführen einen Zeiger auf die Datei in $ a1, aber die letzten Zeichen der Datei werden zweimal wiederholt. Die Anzahl der Zeichen, die wiederholt werden, hängt von der Datei ab. Aus dem, was ich gesehen habe, scheint es mit der Anzahl der Zeilenumbrüche in der Datei verbunden zu sein, es sei denn, die Zeilenumbrüche befinden sich ganz am Ende der Datei Die letzten 5 Zeichen der Datei erscheinen am Ende der eingelesenen Datei doppelt, obwohl ich keinen Grund sehe, warum dies wahr sein sollte. (Zu Ihrer Information, dieser Code wird fast wörtlich von kopiertHier außer es liest statt schreibt)

.data
fin: .asciiz "c:/input.txt"
fBuffer: .space 1024
.text
main:
    jal  openFile
    jr   $ra

#returns: pointer to file's text in $a1
openFile:
    li   $v0, 13       # system call for open file 
    la   $a0, fin  #fin is the file name
    li   $a1, 0    # 0 means 'read'
    li   $a2, 0
    syscall            # open file
    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, fBuffer   
    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
    jr $ra

Antworten auf die Frage(1)

Ihre Antwort auf die Frage