Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Register set

16 registers, each 8 bits wide. Some are paired into 16-bit pointers through aliases.

register alias mask description size
R0 A 0x00 Accumulator / general-purpose 8 bits
R1 - 0x01 General-purpose 8 bits
R2 - 0x02 General-purpose 8 bits
R3 - 0x03 General-purpose 8 bits
R4 - 0x04 General-purpose 8 bits
R5 - 0x05 General-purpose 8 bits
R6 - 0x06 General-purpose 8 bits
R7 - 0x07 General-purpose 8 bits
R8 - 0x08 General-purpose 8 bits
R9 IH 0x09 Index register high byte 8 bits
R10 IL 0x0A Index register low byte 8 bits
R11 FPH 0x0B Frame pointer high byte 8 bits
R12 FPL 0x0C Frame pointer low byte 8 bits
R13 SPH 0x0D Stack pointer high byte 8 bits
R14 SPL 0x0E Stack pointer low byte 8 bits
R15 F 0x0F Flags register (Z/N/C) 8 bits

Notes:

  • IH:IL form a 16-bit index pointer.
  • FPH:FPL hold the 16-bit frame pointer.
  • SPH:SPL hold the 16-bit stack pointer; PUSH/POP move it downward.
  • F is overwritten by arithmetic/logic/shift ops. Jumps read it, other ops leave it untouched.
  • Context switches keep register sets separate for each VM context.