Add header generation to assembler
This commit is contained in:
@@ -211,6 +211,32 @@ void serializeProgramToFile(Program* program, const char* outputFileName) {
|
||||
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++) {
|
||||
Instruction* inst = &program->at[i];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user