| Symbol | Meaning |
|---|
| R8 | 8 bit register |
| R16 | 16 bit register |
| i8 | 8 bit value |
| s8 | Signed 8 bit value |
| i16 | 16 bit value |
| cc | Condition code |
| Rlist | Register list, such as BC/DE (BC and DE registers), BC-DL (BC, DE and HL), or a combination thereof |
| Code | Meaning | Alternative |
|---|
| LE | Signed less than or equal | |
| GT | Signed greater than | |
| LT | Signed less than | |
| GE | Signed greater than or equal | |
| LEU | Unsigned less than or equal | |
| GTU | Unsigned greater than | |
| LTU | Unsigned less than | C (carry) |
| GEU | Unsigned greater than or equal | NC (not carry) |
| EQ | Equal | Z (zero) |
| NE | Not equal | NZ (not zero) |
For improved quality of life, the assembler provides several synthesized instructions. This includes instructions such as LD FT,Label which would be cumbersome to write manually every time the programmer needed to load the address of a label. These instructions are marked as (synthesized) in the tables below.
All mnemonics may be followed by a condition code. The assembler will synthesize this into a J/CC (with the opposite condition CC) and the instruction.
For instance LD/EQ T,1 will load T with the value 1 if the flags in F satisfy the EQ condition.
| Mnemonic | Operation | Remarks |
|---|
| ADD T,R8 | Add 8 bit register to T | |
| ADD FT,R16 | Add 16 bit register to FT | |
| ADD R8,i8 | Add immediate byte to 8 bit register | |
| ADD R16,s8 | Add immediate signed byte to 16 bit register | |
| ADD R16,i16 | Add immediate 16 bit value to 16 bit register | (synthesized) |
| SUB T,R8 | Subtract 8 bit register from T | |
| SUB FT,R16 | Subtract 16 bit register from FT | |
| SUB R8,i8 | Subtract immediate byte from 8 bit register | (synthesized) |
| SUB R16,s8 | Subtract immediate signed byte from 16 bit register | (synthesized) |
| SUB R16,i16 | Subtract immediate 16 bit value from 16 bit register | (synthesized) |
| EXT | Sign extend T register | |
| NEG T | Negate T register | |
| NEG FT | Negate FT register | |
| Mnemonic | Operation | Remarks |
|---|
| AND T,R8 | Bitwise AND T with 8 bit register | |
| AND T,i8 | Bitwise AND T register with immediate byte | |
| OR T,R8 | Bitwise OR T with 8 bit register | |
| OR T,i8 | Bitwise OR T register with immediate byte | |
| XOR T,R8 | Bitwise XOR T with 8 bit register | |
| XOR T,i8 | Bitwise XOR T register with immediate byte | |
| LS FT,R8 | Left shift register FT by amount in 8 bit register | |
| LS FT,i8 | Left shift register FT by immediate amount | |
| RS FT,R8 | Right shift register FT by amount in 8 bit register | |
| RS FT,i8 | Right shift register FT by immediate amount | |
| RSA FT,R8 | Arithmetically right shift register FT by amount in 8 bit register | |
| RSA FT,i8 | Arithmetically right shift register FT by immediate amount | |
| NOT F | Set F to one's complement of itself | |
| NOT T | Set T to one's complement of itself | (synthesized) |
| NOT FT | Set FT to one's complement of itself | (synthesized) |
| Mnemonic | Operation | Remarks |
|---|
| CMP T,R8 | Set F to flags reflecting the result of T register minus 8 bit register | |
| CMP R8,i8 | Set F to flags reflecting the result of 8 bit register minus immediate byte | |
| CMP FT,R16 | Set F to flags reflecting the result of FT register minus 16 bit register | |
| TST R16 | Set F to flags reflecting the result of 16 bit register minus zero | |
| Mnemonic | Operation | Remarks |
|---|
| DJ R8,s8 | Decrement 8 bit register, if result is non-zero jump to PC + s8 | |
| J s8 | Jump to PC + s8 | |
| J (r16) | Jump to address in 16 bit register | |
| JAL (r16) | Jump to address in 16 bit register and store return address in HL | |
| JAL i16 | Jump to address in and store return address in HL | (synthesized) |
| J/cc s8 | If register F satisfies the condition, jump to PC + s8 | |
| RETI | Return from an interrupt service routine | |
| SYS i8 | Perform a system call to vector i8 | |
| Mnemonic | Operation | Remarks |
|---|
| EXG T,R8 | Exchange contents of T with 8 bit register | |
| EXG FT,R16 | Exchange contents of FT with 16 bit register | |
| LD R8,i8 | Load 8 bit register with immediate byte | |
| LD T,R8 | Load T register with contents of 8 bit register | |
| LD R8,T | Load 8 bit register with contents of T | |
| LD FT,R16 | Load FT register with contents of 16 bit register | |
| LD R16,FT | Load 16 bit register with contents of FT | |
| LD R16,i16 | Load 16 bit register with immediate 16 bit value | (synthesized) |
| POP R16 | Pop contents of 16 bit register stack | |
| POP Rlist | Pop contents of specified 16 bit register stacks | (synthesized) |
| POPA | Pop contents of all 16 bit registers stacks | |
| PUSH R16 | Push contents of 16 bit register onto its stack | |
| PUSH Rlist | Push contents of specified 16 bit registers onto their stacks | (synthesized) |
| PUSHA | Push contents of 16 bit registers onto their stacks | |
| SWAP R16 | Swap two topmost register stack entries | |
| SWAP Rlist | Swap two topmost stack entries for specified registers | (synthesized) |
| SWAPA | Swap two topmost stack entries for all registers | |
| Mnemonic | Operation | Remarks |
|---|
| LCO T,(R16) | Load T with byte in code area pointed to by 16 bit register | |
| LD T,(R16) | Load T with byte in data area pointed to by 16 bit register | |
| LD (R16),T | Store T in data area pointed to by 16 bit register | |
| LD R8,(FT) | Load 8 bit register with byte in data area pointed to by FT | |
| LD (FT),R8 | Store 8 bit register in data area pointed to by FT | |
| LCR T,(C) | Load T with contents of configuration register | |
| LCR (C),T | Load configuration register with contents of T | |
| LIO T,(R16) | Load T with byte in I/O space pointed to by 16 bit register | |
| LIO (R16),T | Store T in I/O space pointed to by 16 bit register | |
| Mnemonic | Operation | Remarks |
|---|
| DI | Disable external interrupts | |
| EI | Enable external interrupts | |
| NOP | No operation | |
Introduction and overview
Instruction groups
Opcode matrix
Alphabetical list of mnemonics
Configuration registers
Interrupts