2017-10-08 4 views
0

.txtファイル内のコンテンツを読み込んで印刷しようとしています。
後でmipsからダンプされたファイルを読みたいのですが。Mipsアセンブリを使用して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

でフルパスを提供しています。デバッガのsyscallの戻り値でエラーがないか調べます。または、システムコールをトレースします。 MARSまたはSPIMにはIDKがあるが、Linuxでは(strace')。もちろん、LinuxはMARSやSPIMとは異なるシステムコールを使います。 –

+0

とにかく、さまざまな時点でデバッガからのレジスタ値を含めると、これははるかに優れた[mcve]になります。 –

+0

助けてくれてありがとう。しかし、私はここで私のコードをデバッグする方法がわからない、F3 + F7、F7、F7をbised ... また、ファイルが正しく読み取られる方法はありますか?私がファイル名を無効なものに変更しても、エラー/警告は表示されないので... – PlayHardGoPro

答えて

1

問題は、私のファイルのpathについてでした...
私は、コードを見ると、それは大丈夫そうですが、何もoutputedされません。
私はパスがソースコードから始まると考えましたが、それは.jarファイルから始まります。

私がしなければならなかったすべては、デバッガでコードをシングルステップのダブル\\

.data 
myFile: .asciiz "c:\\Users\\johnDoe\\Documents\\Assembly\\test.txt" # filename for input 
関連する問題