Add header generation to assembler

This commit is contained in:
2026-07-16 18:29:40 +10:00
parent 0504067a51
commit 9828ef2811

View File

@@ -211,6 +211,32 @@ void serializeProgramToFile(Program* program, const char* outputFileName) {
exit(1); exit(1);
} }
// Write magic header
size_t written = fwrite("mlc\0", 4, 1, fp);
if (written != 1) {
fprintf(stderr, "failed to write magic header into file %s\n", outputFileName);
fclose(fp);
exit(1);
}
// Write program version
uint8_t version = 1;
written = fwrite(&version, sizeof(uint8_t), 1, fp);
if (written != 1) {
fprintf(stderr, "failed to write version header into file %s\n", outputFileName);
fclose(fp);
exit(1);
}
// Write instruction count
uint32_t instCount = program->len;
written = fwrite(&instCount, sizeof(uint32_t), 1, fp);
if (written != 1) {
fprintf(stderr, "failed to write instruction count header into file %s\n", outputFileName);
fclose(fp);
exit(1);
}
for (size_t i = 0; i < program->len; i++) { for (size_t i = 0; i < program->len; i++) {
Instruction* inst = &program->at[i]; Instruction* inst = &program->at[i];