我只想使用 Syscall 运行任何类型的 Spim 程序来打开、读取和/或写入文件,但这不起作用。我知道我的程序和文件可能不在 QtSpim 的工作目录中,但我不知道如何找到它或设置一个新目录。所以在第一个 Syscall 之后 $v0 是 -1,这表明一个错误。我尝试使用要读取文件的整个路径名(下面的示例)并尝试编写/创建一个文件以查看 QtSpim 将保存文件的位置。如果我有一个根本性的缺陷,请随时告诉我。我在 Windows 下使用 QtSpim
.data
filename: .asciiz "C:\Users\...\test.txt" #einzulesender Dateiname
buffer: .space 1024
.text
main:
#open the file (to get the file descriptor)
li $v0, 13 # system call for open file
la $a0, filename # board file name
li $a1, 0 # Open for reading
li $a2, # Mode
syscall # open a file (file descriptor returned in $v0)
move $s1, $v0 # save the file descriptor
#read from file
li $v0, 14 # system call for read from file
move $a0, $s1 # file descriptor
la $a1, buffer # address of buffer to which to read
li $a2, 1024 # hardcoded buffer length
syscall # read from file
# Close the file
li $v0, 16 # system call for close file
move $a0, $s1 # file descriptor to close