Opcode

From C64-Wiki
Jump to navigationJump to search

Opcodes (short for Operation Codes) are processor instructions used in machine language. The 6510 CPU offers 151 [1] official opcodes, plus 105 illegal (unofficial) opcodes, totaling 256 opcodes.

Legal Opcodes[edit | edit source]

Examples:

Illegal Opcodes[edit | edit source]

Illegal opcodes are undocumented commands that exist as a side-effect of the hardwired circuit design and were called "illegal" because they are not guaranteed to work reliably.

Opcode matrix for MOS 6510[edit | edit source]

Illegal Opcodes are coloured red.


x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x BRK
imp
ORA
inx
JAM SLO
inx
NOP
zp
ORA
zp
ASL
zp
SLO
zp
PHP
imp
ORA
imm
ASL
akk
ANC
imm
NOP
abs
ORA
abs
ASL
abs
SLO
abs
1x BPL
rel
ORA
iny
JAM SLO
iny
NOP
zpx
ORA
zpx
ASL
zpx
SLO
zpy
CLC
imp
ORA
aby
NOP
imp
SLO
aby
NOP
abx
ORA
abx
ASL
abx
SLO
abx
2x JSR
abs
AND
inx
JAM RLA
inx
BIT
zp
AND
zp
ROL
zp
RLA
zp
PLP
imp
AND
imm
ROL
akk
ANC
imm
BIT
abs
AND
abs
ROL
abs
RLA
abs
3x BMI
rel
AND
iny
JAM RLA
iny
NOP
zpx
AND
zpx
ROL
zpx
RLA
zpy
SEC
imp
AND
aby
NOP
imp
RLA
aby
NOP
abx
AND
abx
ROL
abx
RLA
abx
4x RTI
imp
EOR
inx
JAM SRE
inx
NOP
zp
EOR
zp
LSR
zp
SRE
zp
PHA
imp
EOR
imm
LSR
akk
ALR
imm
JMP
abs
EOR
abs
LSR
abs
SRE
abs
5x BVC
rel
EOR
iny
JAM SRE
iny
NOP
zpx
EOR
zpx
LSR
zpx
SRE
zpx
CLI
imp
EOR
aby
NOP
imp
SRE
aby
NOP
abx
EOR
abx
LSR
abx
SRE
abx
6x RTS
imp
ADC
inx
JAM RRA
inx
NOP
zp
ADC
zp
ROR
zp
RRA
zp
PLA
imp
ADC
imm
ROR
akk
ARR
imm
JMP
ind
ADC
abs
ROR
abs
RRA
abs
7x BVS
rel
ADC
iny
JAM RRA
iny
NOP
zpx
ADC
zpx
ROR
zpx
RRA
zpx
SEI
imp
ADC
aby
NOP
imp
RRA
aby
NOP
abx
ADC
abx
ROR
abx
RRA
abx
8x NOP
imm
STA
inx
NOP
imm
SAX
inx
STY
zp
STA
zp
STX
zp
SAX
zp
DEY
imp
NOP
imm
TXA
imp
ANE
imm
STY
abs
STA
abs
STX
abs
SAX
abs
9x BCC
rel
STA
iny
JAM SHA
iny
STY
zpx
STA
zpx
STX
zpy
SAX
zpy
TYA
imp
STA
aby
TXS
imp
TAS
aby
SHY
abx
STA
abx
SHX
aby
SHA
aby
Ax LDY
imm
LDA
inx
LDX
imm
LAX
inx
LDY
zp
LDA
zp
LDX
zp
LAX
zp
TAY
imp
LDA
imm
TAX
imp
LAX
imm
LDY
abs
LDA
abs
LDX
abs
LAX
abs
Bx BCS
rel
LDA
iny
JAM LAX
iny
LDY
zpx
LDA
zpx
LDX
zpy
LAX
zpy
CLV
imp
LDA
aby
TSX
imp
LAS
aby
LDY
abx
LDA
abx
LDX
aby
LAX
aby
Cx CPY
imm
CMP
inx
NOP
imm
DCP
inx
CPY
zp
CMP
zp
DEC
zp
DCP
zp
INY
imp
CMP
imm
DEX
imp
SBX
imm
CPY
abs
CMP
abs
DEC
abs
DCP
abs
Dx BNE
rel
CMP
iny
JAM DCP
iny
NOP
zpx
CMP
zpx
DEC
zpx
DCP
zpx
CLD
imp
CMP
aby
NOP
imp
DCP
aby
NOP
abx
CMP
abx
DEC
abx
DCP
abx
Ex CPX
imm
SBC
inx
NOP
imm
ISC
inx
CPX
zp
SBC
zp
INC
zp
ISC
zp
INX
imp
SBC
imm
NOP SBC
imm
CPX
abs
SBC
abs
INC
abs
ISC
abs
Fx BEQ
rel
SBC
iny
JAM ISC
iny
NOP
zpx
SBC
zpx
INC
zpx
ISC
zpx
SED
imp
SBC
aby
NOP
imp
ISC
aby
NOP
abx
SBC
abx
INC
abx
ISC
abx

Links[edit | edit source]

References[edit | edit source]

  1. Codebase64.org - [Extra Instructions Of The 65XX Series CPU]