我似乎无法打开具有以下MIPS代码的文件。
在这里,我提示用户输入字符串文件路径,并读取输入。
.text
.globl main
main:
li $v0, 0
reprompt_case_return:
bltz $v0, reprompt_case_print
# Print prompt.
la $a0, prompt
li $v0, 4
syscall
# Read input string.
li $v0, 8
la $a0, buffer
li $a1, 1024
syscall
这里我加载了sys代码13来打开一个文件,并且我假设$a0寄存器包含字符串文件路径地址。
# Open file.
li $v0, 13
# Note: filename string is already in $a0.
li $a1, 0 # Flag for reading.
li $a2, 0 # Mode is ignored.
syscall
j return_here
我的问题是文件描述符$v0
包含一个负数。
下面的代码是程序逻辑的其余部分,但我认为可能与问题无关。
reprompt_case_print:
# Print prompt.
la $a0, reprompt
li $v0, 4
syscall
return_here:
# Check if $v0 is less than zero.
bltz $v0, reprompt_case_return
.data
prompt: .asciiz "Enter the file path to a UTF-8 encoded file: \n"
reprompt: .asciiz "The path was invalid, try re-entering the file-path: \n"
buffer: .space 1024
我试过将运行模拟器的.jar文件移动到包含该文件的文件夹中,但是我无法读取它。有什么想法吗?
谢谢
1条答案
按热度按时间jjhzyzn01#
我也遇到过这个问题,并通过将Mars.jar、.asm文件和要读取的文件放在同一个目录中来解决它。