The project targets Linux, is written using the Intel syntax,
and is compiled with NASM. The FASTCALL
calling convention is used: function arguments are passed via registers.
The game is implemented in a toroidal array: the left and right edges are stitched together, as well as the top and bottom edges.
The user can choose the number of columns and rows in the grid via command-line arguments.
Run the project through Docker using the following command:
docker run --rm ghcr.io/corentin-regent/assemblife:main [cols] [rows]
Use the provided Development Container to get all tools installed effortlessly, in a Debian environment.
Then, build and run the project using:
make && ./main [cols] [rows]
The project includes automated tests, that are executed automatically as a part of the CI/CD process. Run them locally using:
make && ./test
I made this project only to gain a deeper understanding of low-level mechanisms in computers. Feel free to do wtf you want with it!