Write tests for memory access instructions.
Write tests for control flow instructions and related behaviours.
Implement tests for condition check commands
Write tests for logic ops and related behaviours. Also un-scuffed the values provided to new() in the tests.
Write tests for division and related behaviours. This also fixes a bug where division would not execute because of an off-by-one
Implement tests for multiplication related behaviours. This also caught and fixed a bug with signed multiplication where the wrong operands were used.
Write tests for subtraction and related behaviours.
Implement reads from serial port/stdin. Implemented as a buffer that gets filled from stdin whenever empty.
Write tests for immediate values and addition related behaviours.
Implement memory access instructions and fix small errors. The small errors were because this one is a dumbass that forgot to run cargo check before making the last commit. Read from serial port is unimplemented as handling of stdin is planned to be handled in the main program loop.
Implement control flow instructions.
Implement condition check instructions.
Implement logical operations.
Implement the rest of the arithmetic ops. This implements subtraction, multiplication, and division, as well as the associated checks for overflows and div by 0
Implemented addition and the generalised parts of handling arithmetic ops. In particular, implemented the invert (I) flag, and ensured that the program counter is unwritable for arithmetic instructions.
Initial commit Creates processor.rs as well as the processor struct and the start of the code for executing instructions.