===== 65c816 opcodes ===== ^ Hex ^ Mnemonic ^ Addressing Mode ^ Bytes ^ Notes ^ ^ 00 | BRK | Stack/Interrupt | 2 | 2 | ^ 01 | ORA | DP Indexed Indirect, X | 2 || ^ 02 | COP | Stack/Interrupt | 2 | 2 | ^ 03 | ORA | Stack Relative | 2 || ^ 04 | TSB | Direct Page | 2 || ^ 05 | ORA | Direct Page | 2 || ^ 06 | ASL | Direct Page | 2 || ^ 07 | ORA | DP Indirect Long | 2 || ^ 08 | PHP | Stack (Push) | 1 || ^ 09 | ORA | Immediate | 2 | 1 | ^ 0A | ASL | Accumulator | 1 || ^ 0B | PHD | Stack (Push) | 1 || ^ 0C | TSB | Absolute | 3 || ^ 0D | ORA | Absolute | 3 || ^ 0E | ASL | Absolute | 3 || ^ 0F | ORA | Absolute Long | 4 || ^ 10 | BPL | Program Counter Relative | 2 || ^ 11 | ORA | DP Indirect Indexed, Y | 2 || ^ 12 | ORA | DP Indirect | 2 || ^ 13 | ORA | SR Indirect Indexed, Y | 2 || ^ 14 | TRB | Direct Page | 2 || ^ 15 | ORA | DP Indexed, X | 2 || ^ 16 | ASL | DP Indexed, X | 2 || ^ 17 | ORA | DP Indirect Long Indexed, Y | 2 || ^ 18 | CLC | Implied | 1 || ^ 19 | ORA | Absolute Indexed, Y | 3 || ^ 1A | INC | Accumulator | 1 || ^ 1B | TCS | Implied | 1 || ^ 1C | TRB | Absolute | 3 || ^ 1D | ORA | Absolute Indexed, X | 3 || ^ 1E | ASL | Absolute Indexed, X | 3 || ^ 1F | ORA | Absolute Long Indexed, X | 4 || ^ 20 | JSR | Absolute | 3 || ^ 21 | AND | DP Indexed Indirect, X | 2 || ^ 22 | JSR | Absolute Long | 4 || ^ 23 | AND | Stack Relative | 2 || ^ 24 | BIT | Direct Page | 2 || ^ 25 | AND | Direct Page | 2 || ^ 26 | ROL | Direct Page | 2 || ^ 27 | AND | DP Indirect Long | 2 || ^ 28 | PLP | Stack (Pull) | 1 || ^ 29 | AND | Immediate | 2 | 1 | ^ 2A | ROL | Accumulator | 1 || ^ 2B | PLD | Stack (Pull) | 1 || ^ 2C | BIT | Absolute | 3 || ^ 2D | AND | Absolute | 3 || ^ 2E | ROL | Absolute | 3 || ^ 2F | AND | Absolute Long | 4 || ^ 30 | BMI | Program Counter Relative | 2 || ^ 31 | AND | DP Indirect Indexed, Y | 2 || ^ 32 | AND | DP Indirect | 2 || ^ 33 | AND | SR Indirect Indexed, Y | 2 || ^ 34 | BIT | DP Indexed, X | 2 || ^ 35 | AND | DP Indexed, X | 2 || ^ 36 | ROL | DP Indexed, X | 2 || ^ 37 | AND | DP Indirect Long Indexed, Y | 2 || ^ 38 | SEC | Implied | 1 || ^ 39 | AND | Absolute Indexed, Y | 3 || ^ 3A | DEC | Accumulator | 1 || ^ 3B | TSC | Implied | 1 || ^ 3C | BIT | Absolute Indexed, X | 3 || ^ 3D | AND | Absolute Indexed, X | 3 || ^ 3E | ROL | Absolute Indexed, x | 3 || ^ 3F | AND | Absolute Long Indexed, X | 4 || ^ 40 | RTI | Stack/RTI | 1 || ^ 41 | EOR | DP Indexed Indirect, X | 2 || ^ 42 | WDM | | 2 | 4 | ^ 43 | EOR | Stack Relative | 2 || ^ 44 | MVP | Block Move | 3 || ^ 45 | EOR | Direct Page | 2 || ^ 46 | LSR | Direct Page | 2 || ^ 47 | EOR | DP Indirect Long | 2 || ^ 48 | PHA | Stack (Push) | 1 || ^ 49 | EOR | Immediate | 2 | 1 | ^ 4A | LSR | Accumulator | 1 || ^ 4B | PHK | Stack (Push | 1 || ^ 4C | JMP | Absolute | 3 || ^ 4D | EOR | Absolute | 3 || ^ 4E | LSR | Absolute | 3 || ^ 4F | EOR | Absolute Long | 4 || ^ 50 | BVC | Program Counter Relative | 2 || ^ 51 | EOR | DP Indirect Indexed, Y | 2 || ^ 52 | EOR | DP Indirect | 2 || ^ 53 | EOR | SR Indirect Indexed, Y | 2 || ^ 54 | MVN | Block Move | 3 || ^ 55 | EOR | DP Indexed, X | 2 || ^ 56 | LSR | DP Indexed, X | 2 || ^ 57 | EOR | DP Indirect Long Indexed, Y | 2 || ^ 58 | CLI | Implied | 1 || ^ 59 | EOR | Absolute Indexed, Y | 3 || ^ 5A | PHY | Stack (Push) | 1 || ^ 5B | TCD | Implied | 1 || ^ 5C | JMP | Absolute Long | 4 || ^ 5D | EOR | Absolute Indexed, X | 3 || ^ 5E | LSR | Absolute Indexed, X | 3 || ^ 5F | EOR | Absolute Long Indexed, X | 4 || ^ 60 | RTS | Stack (RTS) | 1 || ^ 61 | ADC | DP Indexed Indirect, X | 2 || ^ 62 | PER | Stack (PC Relative Long) | 3 || ^ 63 | ADC | Stack Relative | 2 || ^ 64 | STZ | Direct Page | 2 || ^ 65 | ADC | Direct Page | 2 || ^ 66 | ROR | Direct Page | 2 || ^ 67 | ADC | DP Indirect Long | 2 || ^ 68 | PLA | Stack (Pull) | 1 || ^ 69 | ADC | Immediate | 2 | 1 | ^ 6A | ROR | Accumulator | 1 || ^ 6B | RTL | Stack (RTL) | 1 || ^ 6C | JMP | Absolute Indirect | 3 || ^ 6D | ADC | Absolute | 3 || ^ 6E | ROR | Absolute | 3 || ^ 6F | ADC | Absolute Long | 4 || ^ 70 | BVS | Program Counter Relative | 2 || ^ 71 | ADC | DP Indirect Indexed, Y | 2 || ^ 72 | ADC | DP Indirect | 2 || ^ 73 | ADC | SR Indirect Indexed, Y | 2 || ^ 74 | STZ | Direct Page Indexed, X | 2 || ^ 75 | ADC | DP Indexed, X | 2 || ^ 76 | ROR | DP Indexed, X | 2 || ^ 77 | ADC | DP Indirect Long Indexed, Y | 2 || ^ 78 | SEI | Implied | 1 || ^ 79 | ADC | Absolute Indexed, Y | 3 || ^ 7A | PLY | Stack/Pull | 1 || ^ 7B | TDC | Implied | 1 || ^ 7C | JMP | Absolute Indexed Indirect | 3 || ^ 7D | ADC | Absolute Indexed, X | 3 || ^ 7E | ROR | Absolute Indexed, X | 3 || ^ 7F | ADC | Absolute Long Indexed, X | 4 || ^ 80 | BRA | Program Counter Relative | 2 || ^ 81 | STA | DP Indexed Indirect, X | 2 || ^ 82 | BRL | Program Counter Relative Long | 3 || ^ 83 | STA | Stack Relative | 2 || ^ 84 | STY | Direct Page | 2 || ^ 85 | STA | Direct Page | 2 || ^ 86 | STX | Direct Page | 2 || ^ 87 | STA | DP Indirect Long | 2 || ^ 88 | DEY | Implied | 1 || ^ 89 | BIT | Immediate | 2 | 1 | ^ 8A | TXA | Implied | 1 || ^ 8B | PHB | Stack (Push) | 1 || ^ 8C | STY | Absolute | 3 || ^ 8D | STA | Absolute | 3 || ^ 8E | STX | Absolute | 3 || ^ 8F | STA | Absolute Long | 4 || ^ 90 | BCC | Program Counter Relative | 2 || ^ 91 | STA | DP Indirect Indexed, Y | 2 || ^ 92 | STA | DP Indirect | 2 || ^ 93 | STA | SR Indirect Indexed, Y | 2 || ^ 94 | STY | Direct Page Indexed, X | 2 || ^ 95 | STA | DP Indexed, X | 2 || ^ 96 | STX | Direct Page Indexed, Y | 2 || ^ 97 | STA | DP Indirect Long Indexed, Y | 2 || ^ 98 | TYA | Implied | 1 || ^ 99 | STA | Absolute Indexed, Y | 3 || ^ 9A | TXS | Implied | 1 || ^ 9B | TXY | Implied | 1 || ^ 9C | STZ | Absolute | 3 || ^ 9D | STA | Absolute Indexed, X | 3 || ^ 9E | STZ | Absolute Indexed, X | 3 || ^ 9F | STA | Absolute Long Indexed, X | 4 || ^ A0 | LDY | Immediate | 2 | 3 | ^ A1 | LDA | DP Indexed Indirect, X | 2 || ^ A2 | LDX | Immediate | 2 | 3 | ^ A3 | LDA | Stack Relative | 2 || ^ A4 | LDY | Direct Page | 2 || ^ A5 | LDA | Direct Page | 2 || ^ A6 | LDX | Direct Page | 2 || ^ A7 | LDA | DP Indirect Long | 2 || ^ A8 | TAY | Implied | 1 || ^ A9 | LDA | Immediate | 2 | 1 | ^ AA | TAX | Implied | 1 || ^ AB | PLB | Stack (Pull) | 1 || ^ AC | LDY | Absolute | 3 || ^ AD | LDA | Absolute | 3 || ^ AE | LDX | Absolute | 3 || ^ AF | LDA | Absolute Long | 4 || ^ B0 | BCS | Program Counter Relative | 2 || ^ B1 | LDA | DP Indirect Indexed, Y | 2 || ^ B2 | LDA | DP Indirect | 2 || ^ B3 | LDA | SR Indirect Indexed, Y | 2 || ^ B4 | LDY | DP Indexed, X | 2 || ^ B5 | LDA | DP Indexed, X | 2 || ^ B6 | LDX | DP Indexed, Y | 2 || ^ B7 | LDA | DP Indirect Long Indexed, Y | 2 || ^ B8 | CLV | Implied | 1 || ^ B9 | LDA | Absolute Indexed, Y | 3 || ^ BA | TSX | Implied | 1 || ^ BB | TYX | Implied | 1 || ^ BC | LDY | Absolute Indexed, X | 3 || ^ BD | LDA | Absolute Indexed, X | 3 || ^ BE | LDX | Absolute Indexed, Y | 3 || ^ BF | LDA | Absolute Long Indexed, X | 4 || ^ C0 | CPY | Immediate | 2 | 3 | ^ C1 | CMP | DP Indexed Indirect, X | 2 || ^ C2 | REP | Immediate | 2 || ^ C3 | CMP | Stack Relative | 2 || ^ C4 | CPY | Direct Page | 2 || ^ C5 | CMP | Direct Page | 2 || ^ C6 | DEC | Direct Page | 2 || ^ C7 | CMP | DP Indirect Long | 2 || ^ C8 | INY | Implied | 1 || ^ C9 | CMP | Immediate | 2 | 1 | ^ CA | DEX | Implied | 1 || ^ CB | WAI | Implied | 1 || ^ CC | CPY | Absolute | 3 || ^ CD | CMP | Absolute | 3 || ^ CE | DEC | Absolute | 3 || ^ CF | CMP | Absolute Long | 4 || ^ D0 | BNE | Program Counter Relative | 2 || ^ D1 | CMP | DP Indirect Indexed, Y | 2 || ^ D2 | CMP | DP Indirect | 2 || ^ D3 | CMP | SR Indirect Indexed, Y | 2 || ^ D4 | PEI | Stack (Direct Page Indirect) | 2 || ^ D5 | CMP | DP Indexed, X | 2 || ^ D6 | DEC | DP Indexed, X | 2 || ^ D7 | CMP | DP Indirect Long Indexed, Y | 2 || ^ D8 | CLD | Implied | 1 || ^ D9 | CMP | Absolute Indexed, Y | 3 || ^ DA | PHX | Stack (Push) | 1 || ^ DB | STP | Implied | 1 || ^ DC | JMP | Absolute Indirect Long | 3 || ^ DD | CMP | Absolute Indexed, X | 3 || ^ DE | DEC | Absolute Indexed, X | 3 || ^ DF | CMP | Absolute Long Indexed, X | 4 || ^ E0 | CPX | Immediate | 2 | 3 | ^ E1 | SBC | DP Indexed Indirect, X | 2 || ^ E2 | SEP | Immediate | 2 || ^ E3 | SBC | Stack Relative | 2 || ^ E4 | INX | Direct Page | 2 || ^ E5 | SBC | Direct Page | 2 || ^ E6 | INC | Direct Page | 2 || ^ E7 | SBC | DP Indirect Long | 2 || ^ E8 | INX | Implied | 1 || ^ E9 | SBC | Immediate | 2 | 1 | ^ EA | NOP | Implied | 1 || ^ EB | XBA | Implied | 1 || ^ EC | CPX | Absolute | 3 || ^ ED | SBC | Absolute | 3 || ^ EE | INC | Absolute | 3 || ^ EF | SBC | Absolute Long | 4 || ^ F0 | BEQ | Program Counter Relative | 2 || ^ F1 | SBC | DP Indirect Indexed, Y | 2 || ^ F2 | SBC | DP Indirect | 2 || ^ F3 | SBC | SR Indirect Indexed, Y | 2 || ^ F4 | PEA | Stack (absolute) | 3 || ^ F5 | SBC | DP Indexed, X | 2 || ^ F6 | INC | DP Indexed, X | 2 || ^ F7 | SBC | DP Indirect Long Indexed, Y | 2 || ^ F8 | SED | Implied | 1 || ^ F9 | SBC | Absolute Indexed, Y | 3 || ^ FA | PLX | Stack /Pull | 1 || ^ FB | XCE | Implied | 1 || ^ FC | JSR | Absolute Indexed Indirect | 3 || ^ FD | SBC | Absolute Indexed, X | 3 || ^ FE | INC | Absolute Indexed, X | 3 || ^ FF | SBC | Absolute Long Indexed, X | 4 || More information about the SNES's 65c816 chip can be found below: * http://softpixel.com/~cwright/sianse/docs/65816NFO.HTM * http://archive.is/Rjr9 ==== Notes ==== - Add 1 byte if m=0 (16-bit memory/accumulator) - opcode is 1 byte, but program counter value pushed onto stack is incremented by 2 allowing for optional signature byte - Add 1 byte if x=0 (16-bit index register) - Bytes and cycle counts subject to change in future processors which expand WDM into 2-byte opcode portions of instructions of varying lengths.