【发布时间】:2016-12-18 13:54:11
【问题描述】:
我正在从事一个大学项目,我们必须通过 MIPS 将数据写入文件。我可以在 MARS 上运行所有内容,但在 QtSpim 上,打开文件总是会返回错误:
.data
file_name: .asciiz "test.pgm"
#
# main
#
.text
.globl main
main:
# Open File in write mode
li $v0, 13 # $v0 = 13, option for opening file
la $a0, file_name # $a0 = &file_name
li $a1, 1 # $a1 = 1, write-flag
li $a2, 0 # $a2 = 0, mode is ignored
syscall # open File, save descriptor to $v0
jr $ra # return
当我在 QtSpim 中逐步运行它时,我在 $v0 中的 syscall 之后得到一个 -1。
任何想法,为什么 QtSpim 不能运行它?我使用的是 Windows 10,QtSpim 版本 9.1.17,虽然 LinuxMint 18 上的相同版本有同样的问题。任何帮助表示赞赏,现在我将在 MARS 上运行所有内容,但我们必须提交一些适用于 QtSpim 的东西。
更新
当我使用绝对路径时它似乎可以工作,但是文件必须存在才能以写入模式打开它。如果文件不存在,有没有办法创建文件?
【问题讨论】:
-
是的,我知道我必须关闭文件等,我只是复制了与这个问题相关的代码。