title: When reading file in MIPS, it reads last line twice
body: <p>I was able to (partly) successfully read in a file in MIPs. Below is my current code. In QtSpim, when I run it, I get a pointer to the file in $a1, but the last few characters of the file are repeated twice. The number of characters that is repeated changes depending on the file. From what I've seen, it seems to be linked to the number of new-line characters in the file unless the new-line chars are at the very end of the file (meaning, if there were 5 new-line characters, the last 5 characters of the file would appear duplicated at the end of the file read in), although I don't see any reason why this should be true. (FYI, this code is copied almost verbatim from <a href="http://courses.missouristate.edu/kenvollmar/mars/help/syscallhelp.html" rel="nofollow">here</a> except it reads instead of writes)</p>
  
  <pre><code>.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
  </code></pre>