14 lines
607 B
C
14 lines
607 B
C
|
|
#include "assembler.h"
|
||
|
|
#include <stdio.h>
|
||
|
|
#include <string.h>
|
||
|
|
int main(int argc, char *argv[]) {
|
||
|
|
const char *input = NULL; const char *output = "a.gobj";
|
||
|
|
for (int i = 1; i < argc; i++) { if (strcmp(argv[i], "-o") == 0 && i + 1 < argc) output = argv[++i]; else input = argv[i]; }
|
||
|
|
if (!input) { printf("Usage: %s <file.gasm> -o <out.gobj>\n", argv[0]); return 1; }
|
||
|
|
Assembler as; asm_init(&as);
|
||
|
|
if (asm_assemble(&as, input) != 0) return 1;
|
||
|
|
if (asm_write_gobj(&as, output) != 0) return 1;
|
||
|
|
printf("Assembled %s -> %s (%u instructions)\n", input, output, as.code_len);
|
||
|
|
return 0;
|
||
|
|
}
|