Я пишу высокоуровневый ассемблер 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-битные двоичные инструкции и записать их в файл, который будет прочитан faux-CPU.
У меня возникла проблема, когда 32-разрядный разделитель в начале файла должен быть 0xf0f0f0f0. Я знаю, что вы не можете «прочитать» двоичный файл, но, глядя на файл примера, который у меня есть, разделитель представляется / 360/360/360/360 после записи в fwrite. Почему это так, и как мне повторить такое поведение, когда я пишу свой собственный файл (например, как использовать fwrite для достижения этой цели при создании других двоичных файлов)?