The full GB-Z80 instruction-set is implemented with a few modifications to the original Zilog syntax. This is due
to a Bison problem but in my opinion the syntax is better than the original one.
ADC
ADD
AND
BIT
CALL
CCF
CP
CPL
DAA
DEC
DI
EI
EX
HALT
INC
JP
JR
LD
LDD
LDI
LDH/LDIO (see note below)
NOP
OR
POP
PUSH
RES
RET
RETI
RL
RLA
RLC
RLCA
RR
RRA
RRC
RRCA
RST
SBC
SCF
SET
SLA
SRA
SRL
STOP
SUB
SWAP
XOR
Note that you can use both
OR A,B
OR B
Indirect addressing has been changed to [ ] instead of ( ):
A
B
C
D
E
H
L
AF
BC
DE
HL
SP
[BC]
[DE]
[HL]
[HL-]/[HLI]
[HL+]/[HLD]
[SP]
n8 (8 bit expression)
n16 (16 bit expression)
n3 (3 bit CONSTANT expression)
[n16]/[$FF00+n8]
[$FF00+C]/[C]
The assembler will intelligently decide between [n16] and [$FF00+n8] in the LD instruction. Note however that if you use any constant symbols in the expression they had better be defined before the instruction or your symbol-table may become mangled. Also worth noting is that it will only ever select the short $FF00 mode when you use constant symbols. NOT if you use symbols defined in a HRAM section. As this defies the whole point of implementing the HRAM sectiontype I've added the LDIO mnemonic. It works like the LD instruction but it will ALWAYS generate the $FF00+ form and it will also automatically logically AND the expression with $FF if it is relocatable. Which is what you want. Trust me ;)
C
NC
Z
NZ
Last updated 20 July 1997 by Carsten Sorensen