Opcode

Aus C64-Wiki
Zur Navigation springenZur Suche springen

Die Abkürzung Opcode (von operation code) ist eine Zahl bzw. Byte für die CPU, die einen entsprechenden Maschinensprache-Befehl einleitet. Manche Opcodes stellen bereits alleine einen Maschinenbefehl dar, andere hingegen benötigen noch weitere Operanden, um den gesamten Maschinenbefehl zu bilden.

Alle Opcodes eines Prozessors in ihrer Gesamtheit werden Befehlssatz genannt. Opcodes werden normalerweise in hexadezimaler Notation dargestellt.

Es gibt auch sogenannte illegale Opcodes, die nicht zum offiziellen, vom Prozessorhersteller deklarierten Befehlssatz gehören, die aber teilweise nützliche Effekte haben.

Beispiele der CPU MOS 6510[Bearbeiten | Quelltext bearbeiten]

Einige Opcode-Beispiele für die CPU MOS 6510:

Opcode Operand Mnemonic
$aa - TAX
$a9 $00 LDA #$00
$8d $20 $d0 STA $d020

Opcode-Matrix der CPU MOS 6510[Bearbeiten | Quelltext bearbeiten]

Die Opcode-Matrix für die CPU MOS 6510.

Legende:

Illegale Opcodes sind klein und kursiv gesetzt.

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF
0x BRK
imp
ORA
inx
KIL 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
KIL SLO
iny
NOP
zpx
ORA
zpx
ASL
zpx
SLO
zpx
CLC
imp
ORA
aby
NOP
imp
SLO
aby
NOP
abx
ORA
abx
ASL
abx
SLO
abx
2x JSR
abs
AND
inx
KIL 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
KIL RLA
iny
NOP
zpx
AND
zpx
ROL
zpx
RLA
zpx
SEC
imp
AND
aby
NOP
imp
RLA
aby
NOP
abx
AND
abx
ROL
abx
RLA
abx
4x RTI
imp
EOR
inx
KIL 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
KIL 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
KIL 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
KIL 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
XAA
imm
STY
abs
STA
abs
STX
abs
SAX
abs
9x BCC
rel
STA
iny
KIL AHX
iny
STY
zpx
STA
zpx
STX
zpy
SAX
zpy
TYA
imp
STA
aby
TXS
imp
TAS
aby
SHY
abx
STA
abx
SHX
aby
AHX
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
KIL 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
AXS
imm
CPY
abs
CMP
abs
DEC
abs
DCP
abs
Dx BNE
rel
CMP
iny
KIL 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
imp
SBC
imm
CPX
abs
SBC
abs
INC
abs
ISC
abs
Fx BEQ
rel
SBC
iny
KIL 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

Weblinks[Bearbeiten | Quelltext bearbeiten]