使用 Mips Assembly 读取和打印 txt 文件中的内容

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

我正在尝试读取并打印 .txt 文件中的内容。
稍后我也想从 mips 读取转储的文件。
我看到代码,看起来没问题,但没有输出任何内容......

.data  
myFile: .asciiz "teste.txt"      # filename for input
buffer: .space 1024
.text

# Open file for reading

li   $v0, 13          # system call for open file
la   $a0, myFile      # input file name
li   $a1, 0           # flag for reading
li   $a2, 0           # mode is ignored
syscall               # open a file 
move $s0, $v0         # save the file descriptor  


# reading from file just opened

li   $v0, 14        # system call for reading from file
move $a0, $s0       # file descriptor 
la   $a1, buffer    # address of buffer from which to read
li   $a2,  11       # hardcoded buffer length
syscall             # read from file


# Printing File Content
li  $v0, 4          # system Call for PRINT STRING
la  $a0, buffer     # buffer contains the values
syscall             # print int

li $v0, 10      # Finish the Program
syscall
assembly printing mips
2个回答
4
投票

问题出在我文件的

path
上。
我以为路径会从源代码开始,但它是从
.jar
文件开始的。

我所要做的就是提供一个带有 double 的 fullPath

\\

.data
myFile: .asciiz "c:\\Users\\johnDoe\\Documents\\Assembly\\test.txt" # filename for input

0
投票

对于有人尝试了上面的答案但代码仍然无法运行,也许要注意你如何命名文件。我左键单击并创建一个 txt 文件并将其命名为 temp.txt,它会正常显示在资源管理器中,如下所示https://i.sstatic.net/lQET8YR9.png。现在猜一下文件的真实名称,是temp.txt.txt,为此浪费了我1小时的时间🙄

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