/* * Assembler for the R31JP board (8051 CPU). */ #include #include #include #include #include #include "rasm.h" #include "symtab.h" #include "util.h" #include "output.h" #include "compile.h" unsigned char data[MEMSIZE]; int data_size; int main(int argc, char *argv[]) { char infile[BUFSIZE]; char outfile[BUFSIZE]; if (argc < 2) { fprintf(stderr, "Usage: %s filename\n", argv[0]); fprintf(stderr, "This will compile filename.asm into filename.obj\n"); exit(2); } snprintf(infile, sizeof(infile), "%s.asm", argv[1]); snprintf(outfile, sizeof(outfile), "%s.obj", argv[1]); /* Preload the tables with useful stuff */ symtab_preload(); alias_preload(); /* Pass 1 -- create a symbol table */ data_size = compile_to_memory(infile, data, 1); /* Pass 2 -- fill in address references from symtab */ data_size = compile_to_memory(infile, data, 2); /* Dump memory into ascii-hex file */ write_memory_to_obj(outfile, data, data_size); return 0; }