Self was a rev challenge written for angstromctf 2022.
This challenge contains a VM with one large memory region from 0x000 to 0xfff for both data and the program.
Each memory cell contains 4 bytes, with the first byte being read in as an instruction, the first three nibbles used as the first immediate, and the second three nibbles used as the second immediate as seen below.
0xIIaaabbb.
This VM contained 11 instructions:
NOP: 0xff
HALT: 0x00 and any invalid instruction