“Don't learn from these docs! Bug people on IRC instead.”

super:technical_information:asm_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:

- 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.

super/technical_information/asm_opcodes.txt · Last modified: 2019/09/12 16:37 by danjen