sm:technical_information:asm_opcodes
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:
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.
sm/technical_information/asm_opcodes.txt · Last modified: 2019/09/12 16:37 by 127.0.0.1