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