Я не могу прочитать или написать файл, используя MARS - mips - PullRequest
0 голосов
/ 06 октября 2019

Я попытался использовать следующий код, чтобы открыть новый файл для записи, записать в него текст из буфера памяти, а затем закрыть его. Я полагаю, что файл txt должен быть создан в каталоге, в котором сохранен скрипт MARS, автоматически, однако файла нет. $ v0 не отрицателен, поэтому я думаю, что ошибки не произошло. Кто-нибудь знает, в чем может быть проблема?

        .data
fout:   .asciiz "testout.txt"      # filename for output
buffer: .asciiz "The quick brown fox jumps over the lazy dog."
        .text
  ###############################################################
  # Open (for writing) a file that does not exist
  li   $v0, 13       # system call for open file
  la   $a0, fout     # output file name
  li   $a1, 1        # Open for writing (flags are 0: read, 1: write)
  li   $a2, 0        # mode is ignored
  syscall            # open a file (file descriptor returned in $v0)
  move $s6, $v0      # save the file descriptor 
  ###############################################################
  # Write to file just opened
  li   $v0, 15       # system call for write to file
  move $a0, $s6      # file descriptor 
  la   $a1, buffer   # address of buffer from which to write
  li   $a2, 44       # hardcoded buffer length
  syscall            # write to file
  ###############################################################
  # Close the file 
  li   $v0, 16       # system call for close file
  move $a0, $s6      # file descriptor to close
  syscall            # close file
  ###############################################################

1 Ответ

0 голосов
/ 06 октября 2019

Причина проблемы была в пути: fout: .asciiz "testout.txt". Это должен быть полный путь с двойным \\ вместо \:

fout:.asciiz "C:\\Users\\Angry\\Desktop\\testout.txt"

...