Сборка MIPS - Ошибка открытия файла - PullRequest
0 голосов
/ 05 июня 2018

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

Спасибо

...