Skip to content

Latest commit

 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

C Assembler Project

A complete two-pass assembler for a custom assembly language, developed as a final project for the Systems Programming Laboratory course at The Open University.

Key Features

  • Two-Pass Algorithm: Implements the classic two-pass mechanism to first build a symbol table and then translate the code.
  • Macro Support: Includes a pre-assembler stage that handles macro expansion.
  • Error Handling: Detects and reports a wide range of syntactical errors in the source assembly files.
  • Multiple Output Files: Generates object, entry, and external files, demonstrating an understanding of the linking process.

Technologies Used

  • Language: C (C99)
  • Build System: Makefile
  • Core Concepts: Dynamic Data Structures (Linked Lists), Manual Memory Management, File I/O.

Getting Started

To compile and run the assembler:

  1. Clone the repository:
    git clone [https://github.com/Talnet054/Systems-Programming-Project.git](https://github.com/Talnet054/Systems-Programming-Project.git)
  2. Navigate to the project directory:
    cd Systems-Programming-Project
  3. Compile the project using the Makefile:
    make
  4. Run the assembler with an assembly file:
    ./assembler <your_assembly_file_name>

About

A two-pass assembler written in C for a custom assembly language. Final project for the Systems Programming Laboratory course."

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages