Übersicht 6502-Assemblerbefehle
Aus C64-Wiki
Zur Navigation springenZur Suche springenSiehe auch Opcode-Matrix der CPU MOS 6510.
Gruppe | Mnemonic | Befehl | Beschreibung | Adressierungsarten | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Akkumulator | Implizit | Unmittelbar | Absolut | Absolut,X | Absolut,Y | Zeropage | Zeropage,X | Zeropage,Y | Indirect | Indirect,X | Indirect,Y | Relativ | ||||
Ladebefehle | LDA | Load Accumulator | Lade Akkumulator | LDA #$nn | LDA $hhll | LDA $hhll, X | LDA $hhll, Y | LDA $ll | LDA $ll, X | LDA ($ll, X) | LDA ($ll), Y | |||||
Ladebefehle | LDX | Load X-Register | Lade X-Register | LDX #$nn | LDX $hhll | LDX $hhll, Y | LDX $ll | LDX $ll, Y | ||||||||
Ladebefehle | LDY | Load Y-Register | Lade Y-Register | LDY #$nn | LDY $hhll | LDY $hhll, X | LDY $ll | LDY $ll, X | ||||||||
Speicherbefehle | STA | STore Accumulator | Speichere Akkumulator | STA $hhll | STA $hhll, X | STA $hhll, Y | STA $ll | STA $ll, X | STA ($ll, X) | STA ($ll), Y | ||||||
Speicherbefehle | STX | STore X-Register | Speichere X-Register | STX $hhll | STX $ll | STX $ll, Y | ||||||||||
Speicherbefehle | STY | STore Y-Register | Speichere Y-Register | STY $hhll | STY $ll | STY $ll, X | ||||||||||
Transfer-Befehle | TAX | Transfer Accumulator to X | Kopiere Akkumulator zu X | TAX | ||||||||||||
Transfer-Befehle | TAY | Transfer Accumulator to Y | Kopiere Akkumulator zu Y | TAY | ||||||||||||
Transfer-Befehle | TXA | Transfer X to Accumulator | Kopiere X zu Akkumulator | TXA | ||||||||||||
Transfer-Befehle | TYA | Transfer Y to Accumulator | Kopiere Y zu Akkumulator | TYA | ||||||||||||
Transfer-Befehle | TSX | Transfer Stackpointer to X | Kopiere Stackpointer zu X | TSX | ||||||||||||
Transfer-Befehle | TXS | Transfer X to Stackpointer | Kopiere X zu Stackpointer | TXS | ||||||||||||
Logische Operationen | AND | And | Logisches "Und" | AND #$nn | AND $hhll | AND $hhll, X | AND $hhll, Y | AND $ll | AND $ll, X | AND ($ll, X) | AND ($ll), Y | |||||
Logische Operationen | ORA | OR Accumulator | Logisches "Oder" | ORA #$nn | ORA $hhll | ORA $hhll, X | ORA $hhll, Y | ORA $ll | ORA $ll, X | ORA ($ll, X) | ORA ($ll), Y | |||||
Logische Operationen | EOR | Exclusive OR | Logisches "Entweder/Oder" (XOR) | EOR #$nn | EOR $hhll | EOR $hhll, X | EOR $hhll, Y | EOR $ll | EOR $ll, X | EOR ($ll, X) | EOR ($ll), Y | |||||
Arithmetische Operationen | ADC | ADd with Carry | Addiere mit Übertrag | ADC #$nn | ADC $hhll | ADC $hhll, X | ADC $hhll, Y | ADC $ll | ADC $ll, X | ADC ($ll, X) | ADC ($ll), Y | |||||
Arithmetische Operationen | SBC | Subtract with Carry | Subtrahiere mit Übertrag | SBC #$nn | SBC $hhll | SBC $hhll, X | SBC $hhll, Y | SBC $ll | SBC $ll, X | SBC ($ll, X) | SBC ($ll), Y | |||||
Arithmetische Operationen | INC | INCrement | Inkrementiere Speicherzelle | INC $hhll | INC $hhll, X | INC $ll | INC $ll, X | |||||||||
Arithmetische Operationen | DEC | DECrement | Dekrementiere Speicherzelle | DEC $hhll | DEC $hhll, X | DEC $ll | DEC $ll, X | |||||||||
Arithmetische Operationen | INX | INcrement X | Inkrementiere X-Register | INX | ||||||||||||
Arithmetische Operationen | INY | INcrement Y | Inkrementiere Y-Register | INY | ||||||||||||
Arithmetische Operationen | DEX | DEcrement X | Denkrementiere X-Register | DEX | ||||||||||||
Arithmetische Operationen | DEY | DEcrement Y | Denkrementiere Y-Register | DEY | ||||||||||||
Bitweises Verschieben | ASL | Arithmetical Shift Left | Bitweises Verschieben nach links | ASL | ASL $hhll | ASL $hhll, X | ASL $ll | ASL $ll, X | ||||||||
Bitweises Verschieben | LSR | Logical Shift Right | Bitweises Verschieben nach rechts | LSR | LSR $hhll | LSR $hhll, X | LSR $ll | LSR $ll, X | ||||||||
Bitweises Verschieben | ROL | ROtate Left | Bitweises Rotieren nach links | ROL | ROL $hhll | ROL $hhll, X | ROL $ll | ROL $ll, X | ||||||||
Bitweises Verschieben | ROR | ROtate Right | Bitweises Rotieren nach rechts | ROR | ROR $hhll | ROR $hhll, X | ROR $ll | ROR $ll, X | ||||||||
Vergleichs-Operationen | CMP | CoMPare | Vergleiche mit Akkumulator | CMP #$nn | CMP $hhll | CMP $hhll, X | CMP $hhll, Y | CMP $ll | CMP $ll, X | CMP ($ll, X) | CMP ($ll), Y | |||||
Vergleichs-Operationen | CPX | ComPare X | Vergleiche mit X | CPX #$nn | CPX $hhll | CPX $ll | ||||||||||
Vergleichs-Operationen | CPY | ComPare Y | Vergleiche mit Y | CPY #$nn | CPY $hhll | CPY $ll | ||||||||||
Vergleichs-Operationen | BIT | BIT test | BIT-Test mit Akkumulator | BIT $hhll | BIT $ll | |||||||||||
Sprungbefehle (unbedingt) | JMP | JuMP | Unbedingter Sprung | JMP $hhll | JMP ($hhll) | |||||||||||
Sprungbefehle (unbedingt) | JSR | Jump to SubRoutine | Unterprogrammaufruf | JSR $hhll | ||||||||||||
Sprungbefehle (unbedingt) | RTS | ReTurn from Subroutine | Rückkehr aus Unterprogramm | RTS | ||||||||||||
Sprungbefehle (unbedingt) | RTI | ReTurn from Interrupt | Rückkehr aus Interrupt | RTI | ||||||||||||
Sprungbefehle (bedingt) | BCC | Branch on Carry Clear | Verzweige bei gelöschtem Carry-Flag | BCC $hhll | ||||||||||||
Sprungbefehle (bedingt) | BCS | Branch on Carry Set | Verzweige bei gesetztem Carry-Flag | BCS $hhll | ||||||||||||
Sprungbefehle (bedingt) | BEQ | Branch on EQual | Verzweige bei gesetztem Zero-Flag | BEQ $hhll | ||||||||||||
Sprungbefehle (bedingt) | BNE | Branch on Not Equal | Verzweige bei gelöschtem Zero-Flag | BNE $hhll | ||||||||||||
Sprungbefehle (bedingt) | BPL | Branch on PLus | Verzweige bei gelöschtem Negative-Flag | BPL $hhll | ||||||||||||
Sprungbefehle (bedingt) | BMI | Branch on MInus | Verzweige bei gesetztem Negative-Flag | BMI $hhll | ||||||||||||
Sprungbefehle (bedingt) | BVC | Branch on oVerflow Clear | Verzweige bei gelöschtem Overflow-Flag | BVC $hhll | ||||||||||||
Sprungbefehle (bedingt) | BVS | Branch on oVerflow Set | Verzweige bei gesetztem Overflow-Flag | BVS $hhll | ||||||||||||
Flag-Befehl | SEC | SEt Carry | Setze Carry-Flag | SEC | ||||||||||||
Flag-Befehl | CLC | CLear Carry | Lösche Carry-Flag | CLC | ||||||||||||
Flag-Befehl | SEI | SEt Interrupt | Setze Interrupt-Flag | SEI | ||||||||||||
Flag-Befehl | CLI | CLear Interrupt | Lösche Interrupt-Flag | CLI | ||||||||||||
Flag-Befehl | CLV | CLear oVerflow | Lösche Overflow-Flag | CLV | ||||||||||||
Flag-Befehl | SED | SEt Decimal | Setze Decimal-Flag | SED | ||||||||||||
Flag-Befehl | CLD | CLear Decimal | Lösche Decimal-Flag | CLD | ||||||||||||
Stack-Befehle | PHA | PusH Akkumulator | Lege Akkumulatorinhalt auf Stack | PHA | ||||||||||||
Stack-Befehle | PLA | PuLl Akkumulator | Hole Akkumulatorwert vom Stack | PLA | ||||||||||||
Stack-Befehle | PHP | PusH Processor status | Lege Statusregister auf Stack | PHP | ||||||||||||
Stack-Befehle | PLP | PuLl Processor status | Hole Statusregister vom Stack | PLP | ||||||||||||
Spezial-Befehle | NOP | No OPeration | Keine Operation | NOP | ||||||||||||
Spezial-Befehle | BRK | BReaK | Software-Interrupt | BRK |