Here is a (relatively) simple CPU for you to play with;
| Instruction | Code | |
| add the value at the address held at (Instruction Pointer + 1) to the value at the address held at (Instruction Pointer + 2) |
00000001 | |
| subtract the value at the address held at (Instruction Pointer + 2) from the value at the address held at (Instruction Pointer + 1) |
00000010 | |
| move the value at the address held at (Instruction Pointer + 1) to the value at the address held at (Instruction Pointer + 2) |
00000011 |