Under the computer architecture course, we created an assembler, a processor with and without a pipeline for the MIPS architecture. We used python to create all of the things mentioned above, used a wide variety of concepts like mapping, file IO etc. We created a two pass assembler with the help of a symbol table. Besides the tasks that were asked, we added some additional features like syscalls and printing out the virtual memory for the user to visualize the changes happening.
-
Assembler
python .\assembler2.py <ASM_file> <output_file> <memory_file>
-
processor(works for both)
python3 .\processor_non_pipeline.py <bin_file> <data_mem> <file_for_processor_output> <memory_output>
Contributions are hugely appreciated, these projects cover only a very form of assemblers and processors possible, many concepts and optimisations are unexplored. It's highly appreciated if someone wants to provide an extension to this project.