This project implements an assembler for a custom assembly language, converting assembly code to machine code and generating files for linking and loading. It features macro expansion, a two-pass assembly process, and supports various addressing modes. The assembler produces .ob, .ent, and .ext files and includes error detection, syntax validation, and efficient memory management using advanced C techniques.
- π Macro Expansion β Automatically expands macros in the assembly code.
- π Two-Pass Assembly β Processes the assembly code in two phases for improved accuracy.
- π Multiple Addressing Modes β Supports various addressing modes (immediate, direct, indirect, etc.).
- π File Generation β Produces
.ob
,.ent
, and.ext
files for linking and loading. β οΈ Error Detection β Detects and reports syntax errors and undefined symbols.- π¦ Memory Efficiency β Uses optimized data structures and advanced dynamic memory allocation to prevent memory leaks.