高レベルのMIPSアセンブラを作成しています。 fwriteを正しく出力しようとするバットに問題があります。例えば、アセンブリファイルは、次のようになります擬似MIPSアセンブラとfwriteをバイナリエンコーディング用に書く
.text
addi $t0,$0,7
addi $t1,$0,1
L1:
beq $t0,$0,DONE
mult $t1,$t0
mflo $t1
addi $t0,$t0,-1
j L1
DONE:
add $a0,$0,$t1
addi $v0,$0,1
syscall
addi $v0,$0,10
syscall
私のコードは、32ビットのバイナリ命令にこれらを変換し、擬似的なCPUによって読み取られるファイルにそれらをFWRITE必要があります。
ファイルの先頭にある32ビットの区切り文字が0xf0f0f0f0であるバットに問題があります。バイナリファイルを "読む"ことはできませんが、私が持っているサンプルファイルを見れば、区切り文字はfwriteによって書き込まれた後に/ 360/360/360/360で表されます。これはなぜですか、自分のファイルを書いているときにその動作をどのように再現するのでしょうか(他のバイナリファイルを作成するためにfwriteを使うためにはどうすればよいですか?)
fwriteはint値ではなく、最初の引数として配列へのポインタをとります。 – mathjacks
@flapjackery:デリミタの代わりに&delimを使用します。 – BlackBear
男、私は愚かです。 :) – sarnold