Full 6309 Opcode List ===================== http://mdfs.net/Docs/Comp/6309/OpList Author: J.G.Harston - Update: 0.10 - Date: 08-Aug-2001 Opcodes marked with a * are only available on the 6309. All other opcodes are available on the 6809/6809e/6309. nn nn 10 nn 11 nn ------------------------------------------------------------------------ 00 NEG ext - - 71 *OIM >ext - - 72 *AIM >ext - - 73 COM >ext - - 74 LSR >ext - - 75 *EIM >ext - - 76 ROR >ext - - 75 EIM >ext - - 77 ASR >ext - - 78 ASL >ext - - 79 ROL >ext - - 7A DEC >ext - - 7B *TIM >ext - - 7C INC >ext - - 7D TST >ext - - 7E JMP >ext - - 7F CLR >ext - - 80 SUBA #imm *SUBW #n16 *SUBE #imm 81 CMPA #imm *CMPW #n16 *CMPE #imm 82 SBCA #imm *SBCD #n16 - 83 SUBD #n16 CMPD #n16 CMPU #n16 84 ANDA #imm *ANDD #n16 - 85 BITA #imm *BITD #n16 - 86 LDA #imm *LDW #n16 *LDE #imm 87 - - - 88 EORA #imm *EORD #n16 - 89 ADCA #imm *ADCD #n16 - 8A ORA #imm *ORD #n16 - 8B ADCA #imm *ADDW #n16 *ADDE #imm 8C CPX #n16 CMPY #n16 CMPS #n16 8D BSR rel - *DIVD #n16 8E LDX #n16 LDY #n16 *DIVQ #n16 8F - - *MULD #n16 90 SUBA ext *SUBW >ext *SUBE >ext B1 CMPA >ext *CMPW >ext *CMPE >ext B2 SBCA >ext *SBCD >ext - B3 SUBD >ext CMPD >ext CMPU >ext B4 ANDA >ext *ANDD >ext - B5 BITA >ext *BITD >ext - B6 LDA >ext *LDW >ext *LDE >ext B7 STA >ext *STW >ext *STE >ext B8 EORA >ext *EORD >ext - B9 ADCA >ext *ADCD >ext - BA ORA >ext *ORD >ext - BB ADDA >ext *ADDW >ext *ADDE >ext BC CMPX >ext CMPY >ext CMPS >ext BD JSR >ext - *DIVD >ext BE LDX >ext LDY >ext *DIVQ >ext BF STX >ext LDS >ext *MULD >ext C0 SUBB #imm - *SUBF #imm C1 CMPB #imm - *CMPF #imm C2 SBCB #imm - - C3 ADDD #n16 - - C4 ANDB #imm - - C5 BITB #imm - - C6 LDB #imm - *LDF #imm C7 - - - C8 EORB #imm - - C9 ADCB #imm - - CA ORB #imm - - CB ADDB #imm - *ADDF #imm CC LDD #n16 - - CD *LDQ #n32 - - CE LDU #n16 LDS #n16 - CF - - - D0 SUBB ext - *SUBF >ext F1 CMPB >ext - *CMPF >ext F2 SBCB >ext - - F3 ADDD >ext - - F4 ANDB >ext - - F5 BITB >ext - - F6 LDB >ext - *LDF >ext F7 STB >ext - *STF >ext F8 EORB >ext - - F9 ADCB >ext - - FA ORB >ext - - FB ADDB >ext - *ADDF >ext FC LDD >ext *LDQ >ext - FD STD >ext *STQ >ext - FE LDU >ext LDS >ext - FF STU >ext STS >ext - #imm - 8bit immediate number #n16 - 16bit immediate number #n32 - 32bit immediate number ext - 16bit absolute address rel - 8bit relative offset rel16 - 16bit relative offset regs - register map idx - indexed addressing mode, see next table r0,r1 - next byte contains Opcodes in lower case in the above list are 'undocumented'. Indexed (idx) addressing mode ----------------------------- Specified by a post-byte, after the opcode and before any additional data. postbyte data assembler postbyte data assembler 0rrnnnnn n,R | 1rr00000 ,R+ | 1??10000 1rr00001 ,R++ | 1rr10001 [,R++] 1rr00010 ,-R | 1??10010 1rr00011 ,--R | 1rr10011 [,--R] 1rr00100 ,R | 1rr10100 [,R] 1rr00101 B,R | 1rr10101 [B,R] 1rr00110 A,R | 1rr10110 [A,R] 1??00111 | 1??10111 1rr01000 nn n,R | 1rr11000 nn [n,R] 1rr01001 hh ll n16,R | 1rr11001 hh ll [n16,R] 1??01010 | 1??11010 1rr01011 D,R | 1rr11011 [D,R] 1xx01100 nn n,PCR | 1xx11100 nn [n,PCR] 1xx01101 hh ll n16,PCR | 1xx11101 hh ll [n16,PCR] 1??01110 | 1??11110 1??01111 | 10011111 hh ll [n16] | 10111111 | 11011111 | 11111111 rr=00,01,10,11 for R=X,Y,U,S The 68xx series are bigendian, that is, multibyte values are stored in memory with the most significant byte first.