Я не могу открыть файл со следующим кодом 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
Здесь язагрузите системный код 13 для открытия файла, и я предполагаю, что регистр $ a0 содержит строковый адрес filepath.
# 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, в котором я запускаю симулятор, в папкусодержащий файл, но я не могу его прочитать.Есть идеи?
Спасибо