A compact two-pass SIC/XE assembler written in C++.
This project was developed as part of my MSc coursework in Systems Programming. It reads SIC/XE assembly source, builds a symbol table in pass 1, generates object code in pass 2, and writes an object program using H, T, M, and E records.
- Parses SIC/XE assembly input
- Builds a hash-based symbol table
- Supports format 1, 2, 3, and 4 instructions
- Handles directives such as
START,END,BASE,NOBASE,WORD,BYTE,RESW, andRESB - Produces an object file as
output.obj
assembler.cpp- assembler implementationinput.asm- sample input programMakefile- build and run commands
make
./assembler input.asmOr use:
make runThe generated object program is written to output.obj.