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.