从MIPS程序集中的用户输入打开文件时出现问题

时间:2019-04-22 19:29:31

标签: mips mars-simulator

我正在实现一个汇编例程,该例程从用户输入获取绝对路径(/ home / user / file),并使用该路径打开文件并读取其内容。

我尝试了以下3个例程:

    .data
buffer:         .space 128
openfileErrorWarning:   .asciiz "Error"

    .text
read_filepath:
li      $v0, 8       # Syscall for input string
la      $a0, buffer  # Buffer size 128 bytes
li      $a1, 600     # Max character 600
syscall
move    $v0, $a0     # Moves the string in $a0 to the result register $v0           

openfile:
move    $a0,$v0      # Moves the string in $v0 to the argument register $a0
li      $v0,13       # Syscall code for openfile        
li      $a1,0        # Syscall options
li      $a2,0        # Syscall options
syscall             
beq     $v0,-1,openfileError # If $v0 is -1 the open file process failed
move    $s0,$v0      # Moves the syscall output to $s0
j       readfile     # Not yet ...

openfileError:
li      $v0,4        # Syscall for print            
la      $a0,openfileErrorWarning    # printing the error declared in .data
syscall                     

我能够完美地获取用户输入的文件路径,但是当我尝试在$ v0中打开它时出现-1,则打开过程失败(即使将绝对路径作为参数传递)。

我不知道有什么字符串格式吗?我是否需要在字符串的末尾带有\ n或其他内容才能将其作为文件打开?如何将其添加到用户字符串?

0 个答案:

没有答案