【发布时间】:2011-12-31 03:45:47
【问题描述】:
我正在编写一个高级 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 读取。
我有一个问题,文件开头的 32 位分隔符应该是 0xf0f0f0f0。我知道您无法“读取”二进制文件,但是查看我拥有的示例文件,分隔符在由 fwrite 写入后由 /360/360/360/360 表示。为什么会这样以及在我编写自己的文件时如何复制该行为(如如何使用 fwrite 来实现这一点以创建其他二进制文件)?
【问题讨论】: