EXPcalibur guide

Watch the instruction pointer move one byte at a time.

One ordinary instruction, byte by byteOne ordinary instruction, byte by byteGUEST MEMORYADDRESS 100PUSH_SHORTopcodeADDRESS 101FEsigned byte: −2ADDRESS 102NEXTnext opcodeINTERPRETER STATE · AFTER EACH STEPip = 100Before the fetch; stackempty.ip = 101Opcode read; stack stillempty.ip = 102Byte read; top: 0xFFFFFFFEThe same interpreter runs again at 102; no native CPU jump or new VM is involved.

The first byte names the instruction. The second is its signed input. The third is where the next fetch begins. The stack stores the sign-extended result, not the raw byte.