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 |