A Hardware Simulator and an Assembler with its own assembly language, with several Instruction Set, Memory, I/O Architectures supported.
-
Instruction Set Architecture (Register Architecture)
-
Stack (Zero-Address)
-
Accumulator (One-Address)
-
Register (Two-Address)
-
-
Instruction Set Complexity
-
Reduced Instruction Set Computer (RISC)
-
Complex Instruction Set Computer (CISC)
-
-
General Memory Architecture
-
Von Neumann (Princeton) architecture
-
Harvard architecture
-
Modified Harvard architecture
-
-
Input/Output
-
Memory-Mapped I/O
-
Separate Space MMIO
-
Special commands
-
- SIMD
# Testing
git clone https://github.com/dariaomelkina/poc_project
# Assembler:
python3 modules/assembler.py -f modules/program_examples/assembly_test.asm --isa RISC3
# Simulator:
python3 modules/simulator.py --file modules/program_examples/assembly_test6.bin --isa RISC3 --architecture neumann --output special
# Fork, Edit and open Pull Requests or Issues
You should not, under any circumstances try to understand what's going on there
./docs
contains the specs and docs we started this project with, and a 'help' document representing the current state of things with, supposedly, human-readable documentation./modules
contains the general 'backend' modules of the project, an assembler and a hardware simulator./website
contains the general 'frontend' modules of the project, the things running the simulator web page and help pages
Admittedly, there are a lot of those, but we plan (do we really?) to rewrite the front-end without using Dash.
pip install -r requirements.txt
python3 modules/test_assembler.py
python3 modules/test_processor.py
# After every run, there is a detailed log saved in ./log.txt
less log.txt
- Oleg Farenyuk
- Daria Omelkina
- Andriy Sultanov