2017-01-02 11 views
2

MIPSで開いて読み取ろうとしているPGM写真があります。 PGMファイル内の値がASCIIの場合、すべて正常に動作します。それらがHEXフォーマットであるとき、syscall 14(読み込み)はちょうど2つの値と停止よりも読み込み、私はバッファ内のファイルの一部だけをで終わります。MIPSのバイナリファイルからの読み取り

To the left HEX - not working, to the right ASCII - working. Same file 左のHEXは正しく動作していないため、正しく動作しています。同じファイル。私のコードザッツ

(バッファがデータセクションで宣言されたファイルを割り当てるための十分なスペースを持っている場合)

#open a file 
    li $v0, 13 #Syscall for loading files 
    la $a0, image_file #Saving the address to $a0 
    li $a1, 0  # flag for reading 
    li $a2, 0  # mode is ignored 
    syscall 
    move $s6, $v0 #Placing the descriptor in $s6 for later-use 

#read from file 
    li $v0, 14 #Syscall to read from files 
    move $a0, $s6 #Moving descriptor to $a0 
    la $a1, buffer # address of buffer to which to read 
    li $a2, 65555  # hardcoded buffer length 
    syscall 
+0

まだ何かを見つけましたか?あなたがした場合は、あなた自身の質問に答えることもできます。 – szoszk

答えて

1

答えは、その、実際にファイル全体を読んで、コンソールは、ちょうどすべてが表示されないということですEOF記号のために。ファイルを保存したら、ファイルの正確な長さを再度指定し、EOF記号まですべてを保存できるようにする必要があります。

関連する問題