This group project was developed for the Imperial College London COMP40009 Practical Programming module.
For this group project we implemented an assembler and emulator for a subset of the ARM11 assembly language, written in C. We then extended this to allow for a game of Tetris to be assembled and emulated.
The assembler takes ARM11 assembly code and produces an executable binary file:
The emulator takes this binary and simulates the ARM11 architecture. This is done by reading the binary file into memory, before fetching, decoding and executing the instructions within.
The extension can be played by making the source code in extension:
$ make
The game can then be played by running the produced executable:
$ ./tetris
- Move blocks with Arrow or WASD keys
- Fast-drop blocks with SPACE
- Reset the game with R
This project was completed from May to June 2021 together with Anton Zhitomirsky, Sipan Petrosyan & Vincent Lee