Opcode table - ackerman2001/OpenCDK GitHub Wiki

Data is stored in little-endian format

Opcode Explanation Byte length
0x00 mov R[A], b8b7b6b5b4b3b2b1 9
0x01 mov R[B], b8b7b6b5b4b3b2b1 9
0x02 mov R[C], b8b7b6b5b4b3b2b1 9
0x03 mov R[D], b8b7b6b5b4b3b2b1 9
0x04 mov R[E], b8b7b6b5b4b3b2b1 9
0x05 mov R[F], b8b7b6b5b4b3b2b1 9
0x06 mov memory[R[A]], b8b7b6b5b4b3b2b1 9
0x07 mov memory[R[B]], b8b7b6b5b4b3b2b1 9
0x08 mov memory[R[C]], b8b7b6b5b4b3b2b1 9
0x09 mov memory[R[D]], b8b7b6b5b4b3b2b1 9
0x0A mov memory[R[E]], b8b7b6b5b4b3b2b1 9
0x0B mov memory[R[F]], b8b7b6b5b4b3b2b1 9
0x0C inc R[A] 1
0x0D inc R[b1] 2
0x0E dec R[A] 1
0x0F dec R[b1] 2
0x10 add R[A], R[b1] 2
0x11 add R[A], b8b7b6b5b4b3b2b1 9
0x12 call b8b7b6b5b4b3b2b1 9
0x13 call R[A] 1
0x14 ret 1
0x15 mul R[A], R[b1] 2
0x16 skip next instruction if R[b1] == R[b2] 3
0x17 skip next instruction if R[b1] != R[b2] 3
0x18 mov R[A], memory[R[B]] 1
0x19 mov R[b1], R[b2] 3
0x20 mov memory[R[A]], R[b1] 2
0x21 mov memory[R[b1]], R[b2] 3
0x22 jmp b8b7b6b5b4b3b2b1 9
0xFA scan decimal from keyboard and put it in R[b1] 1
0xFB print decimal at memory address R[b1] 2
0xFC Create a window (width, height) = (b4b3b2b1, b8b7b6b5) with title from address R[A] in the memory(terminated by 0-byte) 9
0xFD scan string from keyboard and put it into memory at address R[A] 1
0xFE print string from address R[A] in the memory. It's terminated by 0-byte 1
0xFF terminate program 1