MIPS 程序集 - 打开文件失败

问题描述 投票:0回答:1

我似乎无法打开具有以下 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 code 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 文件移动到包含文件的文件夹,但我无法读取它。有什么想法吗?

谢谢

assembly io mips mars-simulator
1个回答
0
投票

你的Mars.jar,你的.asm文件和你要读取的文件在同一个目录下吗?我刚遇到同样的问题,我将它们移到同一个目录中,然后问题就解决了。

© www.soinside.com 2019 - 2024. All rights reserved.