This is the final project (MMN 14) of the Laboratory C 20465-2024B course at the Open University. This project is a comprehensive assembler program for a specific assembly language written in C.
This assembler can handle macros, symbols, and various error types. It is designed according to specific system requirements.
📄 Project Instruction
📂 Project Structure
project
├───.gitignore
├───assembler
├───LICENSE
├───makefile
├───READEME.md
├───mmn-14-instructions.pdf
├───header
│ ├───consts.h
│ ├───error.h
│ ├───file.h
│ ├───first_pass.h
│ ├───line_data.h
│ ├───post_formating.h
│ ├───second_pass.h
│ ├───symbol_table.h
│ ├───utilities.h
│ └───word_conversion.h
├───input_n_output
│ ├───file_not_found.png
│ ├───invalid_input_1.as
│ ├───invalid_input_1.png
│ ├───invalid_input_2.am
│ ├───invalid_input_2.as
│ ├───invalid_input_2.png
│ ├───invalid_input_3.am
│ ├───invalid_input_3.as
│ ├───invalid_input_3.png
│ ├───invalid_input_4.am
│ ├───invalid_input_4.as
│ ├───invalid_input_4.png
│ ├───invalid_input_5.am
│ ├───invalid_input_5.as
│ ├───invalid_input_5_part_one.png
│ ├───invalid_input_5_part_two.png
│ ├───running_on_all_valid_inputs.png
│ ├───two_files_run_part_one.png
│ ├───two_files_run_part_two.png
│ ├───valid_input_1.am
│ ├───valid_input_1.as
│ ├───valid_input_1.ent
│ ├───valid_input_1.ext
│ ├───valid_input_1.ob
│ ├───valid_input_2.am
│ ├───valid_input_2.as
│ ├───valid_input_2.ent
│ ├───valid_input_2.ext
│ ├───valid_input_2.ob
│ ├───valid_input_3.am
│ ├───valid_input_3.as
│ ├───valid_input_3.ent
│ ├───valid_input_3.ext
│ ├───valid_input_3.ob
│ ├───valid_input_4.am
│ ├───valid_input_4.as
│ ├───valid_input_4.ob
│ ├───valid_input_5.am
│ ├───valid_input_5.as
│ ├───valid_input_5.ent
│ ├───valid_input_5.ext
│ └───valid_input_5.ob
├───scripts
│ ├───assembler.c
│ ├───consts.c
│ ├───error.c
│ ├───file.c
│ ├───first_pass.c
│ ├───line_data.c
│ ├───post_formating.c
│ ├───second_pass.c
│ ├───symbol_table.c
│ ├───utilities.c
│ └───word_conversion.c
For any inquiries or questions, you can contact me at mayanpotu500@gmail.com.
To set up the project, follow these steps:
- Clone the repository:
git clone https://github.com/dredstone1/assembler-labs-c-final-project.git
- Navigate to the project directory:
cd assembler-labs-c-final-project
- Compile the project:
make
To use the assembler, run the following command:
./assembler [input_file]
Replace [input_file]
with the name of the file you want to assemble.
You can assemble multiple files at once.
This project does not accept contributions as of now.
📄 License
This project is licensed under the MIT license. See the license file for details.
I made this project by myself.