Introduction
The row is the high nibble of the opcode and the column the low nibble: the cell at row
B, column D is opcode BD. Each cell gives the mnemonic and
the addressing mode: imp implied,
acc accumulator, imm immediate, zp zero page,
zpx and zpy zero page indexed, abs absolute,
abx and aby absolute indexed, ind indirect, izx
(zp,X), izy (zp),Y, rel relative, izp (zp),
iax (abs,X) and zpr zero page and relative.
The status of each opcode is shown by its colour and, so that colour is not the only sign, by the marker after the cell’s text: nothing for documented, u for undocumented, ? for unstable and jam for an opcode that stops the processor. The overview explains the four statuses.
The mode gives the length: implied and accumulator 1 byte; immediate, zero page, (zp,X), (zp),Y, (zp) and relative 2 bytes; absolute, indirect, (abs,X) and zero page and relative 3 bytes.
NMOS 6502, 6510 and 2A03
151 documented opcodes, 85 undocumented, 8 unstable and 12 that jam. The 6510 and 2A03 decode identically.
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | brk imp | ora izx | kil jam | slo izx u | nop zp u | ora zp | asl zp | slo zp u | php imp | ora imm | asl acc | anc imm u | nop abs u | ora abs | asl abs | slo abs u |
| 1 | bpl rel | ora izy | kil jam | slo izy u | nop zpx u | ora zpx | asl zpx | slo zpx u | clc imp | ora aby | nop imp u | slo aby u | nop abx u | ora abx | asl abx | slo abx u |
| 2 | jsr abs | and izx | kil jam | rla izx u | bit zp | and zp | rol zp | rla zp u | plp imp | and imm | rol acc | anc imm u | bit abs | and abs | rol abs | rla abs u |
| 3 | bmi rel | and izy | kil jam | rla izy u | nop zpx u | and zpx | rol zpx | rla zpx u | sec imp | and aby | nop imp u | rla aby u | nop abx u | and abx | rol abx | rla abx u |
| 4 | rti imp | eor izx | kil jam | sre izx u | nop zp u | eor zp | lsr zp | sre zp u | pha imp | eor imm | lsr acc | alr imm u | jmp abs | eor abs | lsr abs | sre abs u |
| 5 | bvc rel | eor izy | kil jam | sre izy u | nop zpx u | eor zpx | lsr zpx | sre zpx u | cli imp | eor aby | nop imp u | sre aby u | nop abx u | eor abx | lsr abx | sre abx u |
| 6 | rts imp | adc izx | kil jam | rra izx u | nop zp u | adc zp | ror zp | rra zp u | pla imp | adc imm | ror acc | arr imm u | jmp ind | adc abs | ror abs | rra abs u |
| 7 | bvs rel | adc izy | kil jam | rra izy u | nop zpx u | adc zpx | ror zpx | rra zpx u | sei imp | adc aby | nop imp u | rra aby u | nop abx u | adc abx | ror abx | rra abx u |
| 8 | nop imm u | sta izx | nop imm u | sax izx u | sty zp | sta zp | stx zp | sax zp u | dey imp | nop imm u | txa imp | xaa imm ? | sty abs | sta abs | stx abs | sax abs u |
| 9 | bcc rel | sta izy | kil jam | sha izy ? | sty zpx | sta zpx | stx zpy | sax zpy u | tya imp | sta aby | txs imp | tas aby ? | shy abx ? | sta abx | shx aby ? | sha aby ? |
| A | ldy imm | lda izx | ldx imm | lax izx u | ldy zp | lda zp | ldx zp | lax zp u | tay imp | lda imm | tax imp | lxa imm ? | ldy abs | lda abs | ldx abs | lax abs u |
| B | bcs rel | lda izy | kil jam | lax izy u | ldy zpx | lda zpx | ldx zpy | lax zpy u | clv imp | lda aby | tsx imp | las aby ? | ldy abx | lda abx | ldx aby | lax aby u |
| C | cpy imm | cmp izx | nop imm u | dcp izx u | cpy zp | cmp zp | dec zp | dcp zp u | iny imp | cmp imm | dex imp | axs imm u | cpy abs | cmp abs | dec abs | dcp abs u |
| D | bne rel | cmp izy | kil jam | dcp izy u | nop zpx u | cmp zpx | dec zpx | dcp zpx u | cld imp | cmp aby | nop imp u | dcp aby u | nop abx u | cmp abx | dec abx | dcp abx u |
| E | cpx imm | sbc izx | nop imm u | isc izx u | cpx zp | sbc zp | inc zp | isc zp u | inx imp | sbc imm | nop imp | sbc imm u | cpx abs | sbc abs | inc abs | isc abs u |
| F | beq rel | sbc izy | kil jam | isc izy u | nop zpx u | sbc zpx | inc zpx | isc zpx u | sed imp | sbc aby | nop imp u | isc aby u | nop abx u | sbc abx | inc abx | isc abx u |
65C02
All 256 opcodes are defined and documented on this chip. Opcodes new on the 65C02, or defined differently from the NMOS chip, are marked new and tinted; the others are as in the NMOS table above. The NOPs are of the sizes given on the 65C02 additions page.
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | brk imp | ora izx | nop imm new | nop imp new | tsb zp new | ora zp | asl zp | rmb0 zp new | php imp | ora imm | asl acc | nop imp new | tsb abs new | ora abs | asl abs | bbr0 zpr new |
| 1 | bpl rel | ora izy | ora izp new | nop imp new | trb zp new | ora zpx | asl zpx | rmb1 zp new | clc imp | ora aby | inc acc new | nop imp new | trb abs new | ora abx | asl abx | bbr1 zpr new |
| 2 | jsr abs | and izx | nop imm new | nop imp new | bit zp | and zp | rol zp | rmb2 zp new | plp imp | and imm | rol acc | nop imp new | bit abs | and abs | rol abs | bbr2 zpr new |
| 3 | bmi rel | and izy | and izp new | nop imp new | bit zpx new | and zpx | rol zpx | rmb3 zp new | sec imp | and aby | dec acc new | nop imp new | bit abx new | and abx | rol abx | bbr3 zpr new |
| 4 | rti imp | eor izx | nop imm new | nop imp new | nop zp new | eor zp | lsr zp | rmb4 zp new | pha imp | eor imm | lsr acc | nop imp new | jmp abs | eor abs | lsr abs | bbr4 zpr new |
| 5 | bvc rel | eor izy | eor izp new | nop imp new | nop zpx new | eor zpx | lsr zpx | rmb5 zp new | cli imp | eor aby | phy imp new | nop imp new | nop abs new | eor abx | lsr abx | bbr5 zpr new |
| 6 | rts imp | adc izx | nop imm new | nop imp new | stz zp new | adc zp | ror zp | rmb6 zp new | pla imp | adc imm | ror acc | nop imp new | jmp ind | adc abs | ror abs | bbr6 zpr new |
| 7 | bvs rel | adc izy | adc izp new | nop imp new | stz zpx new | adc zpx | ror zpx | rmb7 zp new | sei imp | adc aby | ply imp new | nop imp new | jmp iax new | adc abx | ror abx | bbr7 zpr new |
| 8 | bra rel new | sta izx | nop imm new | nop imp new | sty zp | sta zp | stx zp | smb0 zp new | dey imp | bit imm new | txa imp | nop imp new | sty abs | sta abs | stx abs | bbs0 zpr new |
| 9 | bcc rel | sta izy | sta izp new | nop imp new | sty zpx | sta zpx | stx zpy | smb1 zp new | tya imp | sta aby | txs imp | nop imp new | stz abs new | sta abx | stz abx new | bbs1 zpr new |
| A | ldy imm | lda izx | ldx imm | nop imp new | ldy zp | lda zp | ldx zp | smb2 zp new | tay imp | lda imm | tax imp | nop imp new | ldy abs | lda abs | ldx abs | bbs2 zpr new |
| B | bcs rel | lda izy | lda izp new | nop imp new | ldy zpx | lda zpx | ldx zpy | smb3 zp new | clv imp | lda aby | tsx imp | nop imp new | ldy abx | lda abx | ldx aby | bbs3 zpr new |
| C | cpy imm | cmp izx | nop imm new | nop imp new | cpy zp | cmp zp | dec zp | smb4 zp new | iny imp | cmp imm | dex imp | wai imp new | cpy abs | cmp abs | dec abs | bbs4 zpr new |
| D | bne rel | cmp izy | cmp izp new | nop imp new | nop zpx new | cmp zpx | dec zpx | smb5 zp new | cld imp | cmp aby | phx imp new | stp imp new | nop abs new | cmp abx | dec abx | bbs5 zpr new |
| E | cpx imm | sbc izx | nop imm new | nop imp new | cpx zp | sbc zp | inc zp | smb6 zp new | inx imp | sbc imm | nop imp | nop imp new | cpx abs | sbc abs | inc abs | bbs6 zpr new |
| F | beq rel | sbc izy | sbc izp new | nop imp new | nop zpx new | sbc zpx | inc zpx | smb7 zp new | sed imp | sbc aby | plx imp new | nop imp new | nop abs new | sbc abx | inc abx | bbs7 zpr new |