Herwig Siebenhofer
 / Home / 6502
 
6502 Op-Codes

   • ADC
   • AND
   • ASL
   • BCC
   • BCS
   • BEQ
   • BIT
   • BMI
   • BNE
   • BPL
   • BRK
   • BVC
   • BVS
   • CLC
   • CLD
   • CLI
   • CLV
   • CMP
   • CPX
   • CPY
   • DEC
   • DEX
   • DEY
   • EOR
   • INC
   • INX
   • INY
   • JMP
   • JSR
   • LDA
   • LDX
   • LDY
   • LSR
   • NOP
   • ORA
   • PHA
   • PHP
   • PLA
   • PLP
   • ROL
   • ROR
   • RTI
   • RTS
   • SBC
   • SEC
   • SED
   • SEI
   • STA
   • STX
   • STY
   • TAX
   • TAY
   • TSX
   • TXA
   • TXS
   • TYA

Archiv

   • Kurzübersicht
   • Zahlentabelle
   • 6502 Varianten
   • 6502 Register
   • Adressierungen
   • illegale Ops
   • 6502 Bugs
 

Adressierungsarten

implizit

Die implizite Adressierung besteht aus einem 1 Byte Opcode ohne Operand. Sie beinhaltet alle Befehle, die keine Werte benötigen. Bsp.: INX, DEY, BRK

unmittelbar

Die unmittelbare Adressierung hat zwei Bytes bestehend aus einem 1 Byte Opcode und 1 Byte Operand, der direkt den benötigten Wert beinhaltet. Bsp.: LDA #$12, ADC #§88

relativ

Die relative Adressierung bei den Branch-Befehlen hat zwei Bytes bestehend aus einem 1 Byte Opcode und 1 Byte Operand. Der Operand ist relativ zur aktuellen Speicheradresse zu verstehen, zwischen -128 bis +127 Bytes. Der negative Bereich wird als Zweierkomplement angegeben.

absolut

Die absolute Adressierung hat drei Bytes bestehend aus einem 1 Byte Opcode und 2 Bytes Operand. Der Operand gibt eine Speicherstelle an, deren Inhalt zur Berechnung verwendet wird – bspw. AND $4400. Bei den Sprungbefehlen gibt es die 16-Bit Zieladresse an. Bsp. JSR $1234

absolut mit Register indiziert

Bei dieser Adressierung bestehend aus 1 Byte Opcode und 2 Byte Operand wird zum 16 Bit Adresswert der Wert des angegebenen Registers dazu addiert und ergibt damit die eigentliche Adresse. Bsp.: LDA $5500,X

indirekt absolut

Die indirekt absolute Adressierung bestehend aus 1 Byte Opcode und 2 Bytes Operand zeigt auf eine Speicherstelle, in der die eigentliche Adresse (zuerst Hi-Byte, dann Lo-Byte) steht. Bsp.: JMP ($3344)

Zero Page

Die Zero Page Adressierung ist ein Spezialfall der absoluten Adressierung bei der nur 2 Bytes bestehend aus 1 Byte Opcode und 1 Byte Operand benötigt wird. Mit dieser Adressierung können nur die ersten 256 Byte (Speicherstellen von $0000 bis $00FF) angesprochen werden. Das Hi-Byte ist hier immer $00 und wird nicht angegeben. Bsp.: LDA $22

Zero Page mit Register indiziert

Bei dieser Adressierung bestehend aus 1 Byte Opcode und 1 Byte Operand wird zum Wert der Inhalt des angegebenen Registers dazu addiert und ergibt damit die eigentliche Adresse. Bsp.: LDX $33,Y

X indizierte indirekte Adressierung

Bei dieser Adressierung bestehend aus 1 Byte Opcode und 1 Byte Operand wird zunächst zum Operand das X-Register dazu addiert. Das Ergebnis ist ein Pointer auf eine Zero Page Adresse, in der die eigentliche 16 Bit Adresse steht. Bsp.: LDA ($77,X)

indirekte Y indizierte Adressierung

Diese Adressierung bestehend aus 1 Byte Opcode und 1 Byte Operand ist ein Pointer auf eine Zero Page Adresse, deren 16 Bit-Inhalt geholt wird und das Y-Register dazu addiert wird. Das Ergebnis ist die eigentliche Speicheradresse. Bsp.: LDA ($88),Y