ref: 17192ea6f07c2697bd87bc28df015a66f6e97fc3
dir: /doc/asm/trg_gb.htm/
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>xAsm Gameboy</title> <link rel="stylesheet" type="text/css" href="../style.css"> </head> <body> <h1>Gameboy</h1> <p>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.</p> <h2>Instructions</h2> <ul> <li>ADC <li>ADD <li>AND <li>BIT <li>CALL <li>CCF <li>CP <li>CPL <li>DAA <li>DEC <li>DI <li>EI <li>EX <li>HALT <li>INC <li>JP <li>JR <li>LD <li>LDD <li>LDI <li>LDH/LDIO (see note below) <li>NOP <li>OR <li>POP <li>PUSH <li>RES <li>RET <li>RETI <li>RL <li>RLA <li>RLC <li>RLCA <li>RR <li>RRA <li>RRC <li>RRCA <li>RST <li>SBC <li>SCF <li>SET <li>SLA <li>SRA <li>SRL <li>STOP <li>SUB <li>SWAP <li>XOR </ul> <p>Note that you can use both <pre> OR A,B OR B</pre> <h2>Addressingmodes</h2> <p>Indirect addressing has been changed to [ ] instead of ( ):</p> <ul> <li> A <li> B <li> C <li> D <li> E <li> H <li> L <li> AF <li> BC <li> DE <li> HL <li> SP <li> [BC] <li> [DE] <li> [HL] <li> [HL-]/[HLI] <li> [HL+]/[HLD] <li> [SP] <li> n8 (8 bit expression) <li> n16 (16 bit expression) <li> n3 (3 bit CONSTANT expression) <li> [n16]/[$FF00+n8] <li> [$FF00+C]/[C] </ul> <p>The assembler will intelligently decide between <b>[n16]</b> and <b>[$FF00+n8]</b> in the LD instruction. Note however that if you use any <a href="symbols.htm">constant symbols</a> 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 <a href="section.htm">HRAM section</a>. 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 ;)</p> <h2>Conditioncodes</h2> <ul> <li> C <li> NC <li> Z <li> NZ </ul> <hr> <p>Last updated 20 July 1997 by <a href="mailto:[email protected]">Carsten Sorensen</a></p> </body> </html>