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

问题描述:

我试图读取和打印.txt文件中的内容。
后来我想从mips读取倾销文件。
我看到代码,它似乎不错,但没有什么是outputed ...使用Mips Assembly从txt文件读取和打印内容

.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 
+0

单步执行代码在调试器。检查系统调用返回值(在调试器中)是否有错误。或者更好的是,跟踪系统调用。 IDS,如果MARS或SPIM有,但Linux确实('strace')。当然,Linux使用与MARS或SPIM不同的系统调用。 –

+0

无论如何,如果在各个点包含来自调试器的寄存器值,这将会更好[mcve]。 –

+0

感谢您的帮助。但我不知道如何在这里贬低我的代码,使F3 + F7,F7,F7 ...... 变为另外一种方式,还有办法确保文件被正确读取吗?因为即使我将文件名更改为无效的文件名也没有显示错误/警告...... – PlayHardGoPro

问题是关于我的文件path
我认为路径将从源代码开始,但它从.jar文件开始。

我不得不这样做的是提供双\\一个FULLPATH

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