* = zusätzlich ein Taktzyklus wenn die Grenze einer Seite überschritten wird (z.B. $00ff -> $0100)
+ = zusätzlich 1 Taktzyklus wenn Branch ausgeführt wird
![]() |
|
||||||
![]() |
Über uns | Downloads | Forschung | Nachrichten | Impressionen | Devotionalien | |
| Mnemonic | OP-Code | Länge in Bytes | Taktzyklen | Flags |
|---|---|---|---|---|
| ADC | Add with Carry Addiert Akkumulator und Operand inkl. Carry. Falls das Ergebnis größer als 255 ist, wird der Übertrag im Carryflag vermerkt. | NV----ZC | ||
| ADC #$xx | $69 | 2 | 2 | |
| ADC $xx | $65 | 2 | 3 | |
| ADC $xx,X | $75 | 2 | 4 | |
| ADC $xxxx | $6D | 3 | 4 | |
| ADC $xxxx,X | $7D | 3 | 4* | |
| ADC $xxxx,Y | $79 | 3 | 4* | |
| ADC ($xx,X) | $61 | 2 | 6 | |
| ADC ($xx),Y | $71 | 2 | 5* | |
| AND | Logical AND Logisches UND der einzelnen Bits zwischen Akkumulator und Operand | N-----Z- | ||
| AND #$xx | $29 | 2 | 2 | |
| AND $xx | $25 | 2 | 3 | |
| AND $xx,X | $35 | 2 | 4 | |
| AND $xxxx | $2D | 3 | 4 | |
| AND $xxxx,X | $3D | 3 | 4* | |
| AND $xxxx,Y | $39 | 3 | 4* | |
| AND ($xx,X) | $21 | 2 | 6 | |
| AND ($xx),Y | $31 | 2 | 5 | |
| ASL | Arithmetic Shift Left Arithmetisches Verschieben nach Links. Bit 7 das dabei wegfällt wird in das Carry geschoben. | N-----ZC | ||
| ASL | $0A | 1 | 2 | |
| ASL $xx | $06 | 2 | 5 | |
| ASL $xx,X | $16 | 2 | 6 | |
| ASL $xxxx | $0E | 3 | 6 | |
| ASL $xxxx,X | $1E | 3 | 7 | |
| BCC | Branch on Carry Clear Verzweige wenn das Carry nicht gesetzt ist. | -------- | ||
| BCC $xxxx | $90 | 2 | 2*+ | |
| BCS | Branch on Carry Set Verzweige wenn das Carry gesetzt ist. | -------- | ||
| BCS $xxxx | $B0 | 2 | 2*+ | |
| BEQ | Branch on Equal Verzweige wenn das Zero Flag gesetzt ist. | -------- | ||
| BEQ $xxxx | $F0 | 2 | 2*+ | |
| BIT | Test Bits | NV----Z- | ||
| BIT $xx | $24 | 2 | 3 | |
| BIT $xxxx | $2C | 3 | 4 | |
| BMI | Branch on Minus Verzweige wenn das N-Flag gesetzt ist. | -------- | ||
| BMI $xxxx | $30 | 2 | 2*+ | |
| BNE | Branch on Not Equal Verzweige wenn das Zero-Flag gelöscht ist. | -------- | ||
| BNE $xxxx | $D0 | 2 | 2*+ | |
| BPL | Branch on Plus Verzweige wenn das N-Flag gelöscht ist. | -------- | ||
| BPL $xxxx | $10 | 2 | 2*+ | |
| BRK | Break CPU springt NMI Vektor als Breakpoint an | ---B---- | ||
| BRK | $00 | 1 | 7 | |
| BVC | Branch on Overflow Clear Verzweige wenn das V-Flag geköscht ist. | -------- | ||
| BVC $xxxx | $50 | 2 | 2*+ | |
| BVS | Branch on Overflow Set Verzweige wenn das V-Flag gesetzt ist. | -------- | ||
| BVS $xxxx | $70 | 2 | 2*+ | |
| CLC | Clear Carry Flag Lösche das Carry | -------C | ||
| CLC | $18 | 1 | 2 | |
| CLD | Clear Decimal Flag Lösche das Dezimal Flag, der Prozessor geht zurück in den Hexadezimalmodus. | ----D--- | ||
| CLD | $D8 | 1 | 2 | |
| CLI | Clear Interrupt Flag Lösche das Interrupt Flag, Interrupts werden ab hier wieder zugelassen (nicht NMI) | -----I-- | ||
| CLI | $58 | 1 | 2 | |
| CLV | Clear Overflow Flag Lösche das Overflow Flag | -V------ | ||
| CLV | $B8 | 1 | 2 | |
| CMP | Compare with Accumulator Vergleicht den Inhalt des Akkumulators mit dem Operanden (im Endeffekt eine einfache Substraktion, nur daß das Ergebnis nicht in den Akkumulator übertragen wird) Dabei werden folgende Flags beeinflußt: Negative, Overflow, Carry, Zero | N-----ZC | ||
| CMP #$xx | $C9 | 2 | 2 | |
| CMP $xx | $C5 | 2 | 3 | |
| CMP $xx,X | $D5 | 2 | 4 | |
| CMP $xxxx | $CD | 3 | 4 | |
| CMP $xxxx,X | $DD | 3 | 4* | |
| CMP $xxxx,Y | $D9 | 3 | 4* | |
| CMP ($xx,X) | $C1 | 2 | 6 | |
| CMP ($xx),Y | $D1 | 2 | 5* | |
| CPX | Compare with X-Register Wie CMP, nur mit X-Register anstatt Akkumulator | N-----ZC | ||
| CPX #$xx | $E0 | 2 | 2 | |
| CPX $xx | $E4 | 2 | 3 | |
| CPX $xxxx | $EC | 3 | 4 | |
| CPY | Compare with Y-Register Wie CMP, nur mit Y-Register anstatt Akkumulator | N-----ZC | ||
| CPY #$xx | $C0 | 2 | 2 | |
| CPY $xx | $C4 | 2 | 3 | |
| CPY $xxxx | $CC | 3 | 4 | |
| DEC | Decrement Memory Erniedrigt den Wert einer Speicherzelle um 1, wenn 0 erniedirgt wird, dann wird wieder bei 255 begonnen. Beeinflußt die gleichen Flags wie CMP | N-----Z- | ||
| DEC $xx | $C6 | 2 | 5 | |
| DEC $xx,X | $D6 | 2 | 6 | |
| DEC $xxxx | $CE | 3 | 6 | |
| DEC $xxxx,X | $DE | 3 | 7 | |
| DEX | Decrement X-Register Erniedrigt den Wert des X-Registers um 1 | N-----Z- | ||
| DEX | $CA | 1 | 2 | |
| DEY | Decrement Y-Register Erniedrigt den Wert des Y-Registers um 1 | N-----Z- | ||
| DEY | $88 | 1 | 2 | |
| EOR | Logical EOR Logisches EOR der einzelnen Bits von Akkumulator und Operand. | N-----Z- | ||
| EOR #$xx | $49 | 2 | 2 | |
| EOR $xx | $45 | 2 | 3 | |
| EOR $xx,X | $55 | 2 | 4 | |
| EOR $xxxx | $4D | 3 | 4 | |
| EOR $xxxx,X | $5D | 3 | 4* | |
| EOR $xxxx,Y | $59 | 3 | 4* | |
| EOR ($xx,X) | $41 | 2 | 6 | |
| EOR ($xx),Y | $51 | 2 | 5* | |
| INC | Increment Memory Wie DEC nur daß hier der Wert um 1 erhöht wird. | N-----Z- | ||
| INC $xx | $E6 | 2 | 5 | |
| INC $xx,X | $F6 | 2 | 6 | |
| INC $xxxx | $EE | 3 | 6 | |
| INC $xxxx,X | $FE | 3 | 7 | |
| INX | Increment X-Register Erhöht den Wert des X-Registers um 1 | N-----Z- | ||
| INX | $E8 | 1 | 2 | |
| INY | Increment Y-Register Erhöht den Wert des Y-Registers um 1 | N-----Z- | ||
| INY | $C8 | 1 | 2 | |
| JMP | Jump Springt an die angegebene 16 Bit Adresse | -------- | ||
| JMP $xxxx | $4C | 3 | 3 | |
| JMP ($xxxx) | $6C | 3 | 5 | |
| JSR | Jump to Subroutine Verzweigt an die angegebene 16 Bit Adresse, nachdem der Prgrammcounter auf dem Stack gescihert wurde. Ein RTS lässt den Prozessor wieder am nachfolgenden Befehl weiterarbeiten (PC wird wieder vom Stack geholt). | -------- | ||
| JSR $xxxx | $20 | 3 | 6 | |
| LDA | Load Accumulator Lädt den Akkumulator mit dem Wert des Operanden | N-----Z- | ||
| LDA #$xx | $A9 | 2 | 2 | |
| LDA $xx | $A5 | 2 | 3 | |
| LDA $xx,X | $B5 | 2 | 4 | |
| LDA $xxxx | $AD | 3 | 4 | |
| LDA $xxxx,X | $BD | 3 | 4* | |
| LDA $xxxx,Y | $B9 | 3 | 4* | |
| LDA ($xx,X) | $A1 | 2 | 6 | |
| LDA ($xx),Y | $B1 | 2 | 5* | |
| LDX | Load X-Register Lädt das X-Register mit dem Wert des Operanden | N-----Z- | ||
| LDX #$xx | $A2 | 2 | 2 | |
| LDX $xx | $A6 | 2 | 3 | |
| LDX $xx,Y | $B6 | 2 | 4 | |
| LDX $xxxx | $AE | 3 | 4 | |
| LDX $xxxx,Y | $BE | 3 | 4* | |
| LDY | Load Y-Register Lädt das Y-Register mit dem Wert des Operanden | N-----Z- | ||
| LDY #$xx | $A0 | 2 | 2 | |
| LDY $xx | $A4 | 2 | 3 | |
| LDY $xx,X | $B4 | 2 | 4 | |
| LDY $xxxx | $AC | 3 | 4 | |
| LDY $xxxx,X | $BC | 3 | 4* | |
| LSR | Logical Shift Right Schiebt alle Bits um 1 nach Rechts. Bit 0 wird in das Carry geschoben. | N-----ZC | ||
| LSR | $4A | 1 | 2 | |
| LSR $xx | $46 | 2 | 5 | |
| LSR $xx,X | $56 | 2 | 6 | |
| LSR $xxxx | $4E | 3 | 6 | |
| LSR $xxxx,X | $5E | 3 | 7 | |
| NOP | No Operation 2 Taktzyklen aussetzten | -------- | ||
| NOP | $EA | 1 | 2 | |
| ORA | Logical OR Logisches OR der einzelnen Bits von Akkumulator und Operand. | N-----Z- | ||
| ORA #$xx | $09 | 2 | 2 | |
| ORA $xx | $05 | 2 | 3 | |
| ORA $xx,X | $15 | 2 | 4 | |
| ORA $xxxx | $0D | 3 | 4 | |
| ORA $xxxx,X | $1D | 3 | 4* | |
| ORA $xxxx,Y | $19 | 3 | 4* | |
| ORA ($xx,X) | $01 | 2 | 6 | |
| ORA ($xx),Y | $11 | 2 | 5* | |
| PHA | Push Accumulator on Stack Schiebt den Inhalt des Akkumulators auf das Stack | -------- | ||
| PHA | $48 | 1 | 3 | |
| PHP | Push Processorstatus on Stack Schiebt den Prozessorstatus auf das Stack | -------- | ||
| PHP | $08 | 1 | 3 | |
| PLA | Pull Accumulator from Stack Holt den letzten Wert vom Stack und lädt den Akkumulator damit | N-----Z- | ||
| PLA | $68 | 1 | 4 | |
| PLP | Pull Processorstatus from Stack Holt den letzten Wert vom Stack und setzt den Prozessorstatus damit | NV-BDIZC | ||
| PLP | $28 | 1 | 4 | |
| ROL | Rotate Left Rotiert alle 8 Bits nach Links. Bit 0 erhält den Wert des Carry. Danach nimmt das Carry den Wert von Bit 7 an. | N-----ZC | ||
| ROL | $2A | 1 | 2 | |
| ROL $xx | $26 | 2 | 5 | |
| ROL $xx,X | $36 | 2 | 6 | |
| ROL $xxxx | $2E | 3 | 6 | |
| ROL $xxxx,X | $3E | 3 | 7 | |
| ROR | Rotate Right Wie ROL nur andere Richtung | N-----ZC | ||
| ROR | $6A | 1 | 2 | |
| ROR $xx | $66 | 2 | 5 | |
| ROR $xx,X | $76 | 2 | 6 | |
| ROR $xxxx | $6E | 3 | 6 | |
| ROR $xxxx,X | $7E | 3 | 7 | |
| RTI | Return from Interrupt Wie RTS, nur daß hier an die Stelle zurückgesprungen wird, an der ein Interrupt ausgelöst wurde. | NV-BDIZC | ||
| RTI | $40 | 1 | 6 | |
| RTS | Return from Subroutine Kehrt an den Punkt der letzten Verzweigung mittels JSR zurück. | -------- | ||
| RTS | $60 | 1 | 6 | |
| SBC | Substract with Carry Subtrahiert den Operanden vom Akkumulator. Ist das Carry gesetzt wird nur der Operand subtrahiert, ist es nicht gesetzt, wird der Operand + 1 subtrahiert. Der Übertrag wird im Carry vermerkt. | NV----ZC | ||
| SBC #$xx | $E9 | 2 | 2 | |
| SBC $xx | $E5 | 2 | 3 | |
| SBC $xx,X | $F5 | 2 | 4 | |
| SBC $xxxx | $ED | 3 | 4 | |
| SBC $xxxx,X | $FD | 3 | 4* | |
| SBC $xxxx,Y | $F9 | 3 | 4* | |
| SBC ($xx,X) | $E1 | 2 | 6 | |
| SBC ($xx),Y | $F1 | 2 | 5* | |
| SEC | Set Carry Flag Setzt das Carryflag | -------C | ||
| SEC | $38 | 1 | 2 | |
| SED | Set Decimal Flag Setzt das Dezimal Flag | ----D--- | ||
| SED | $F8 | 1 | 2 | |
| SEI | Set Interrupt Flag Setzt das Interrupt Flag. Ab diesem Kommando erfolgt kein Interrupt mehr (ausgenommen NMI) | -----I-- | ||
| SEI | $78 | 1 | 2 | |
| STA | Store Accumulator Speichert den Inhalt des Akkumulators in der angegebenen Adresse | -------- | ||
| STA $xx | $85 | 2 | 3 | |
| STA $xx,X | $95 | 2 | 4 | |
| STA $xxxx | $8D | 3 | 4 | |
| STA $xxxx,X | $9D | 3 | 5 | |
| STA $xxxx,Y | $99 | 3 | 5 | |
| STA ($xx,X) | $81 | 2 | 6 | |
| STA ($xx),Y | $91 | 2 | 6 | |
| STX | Store X-Register Speichert den Inhalt des X-Registers in der angegebenen Adresse | -------- | ||
| STX $xx | $86 | 2 | 3 | |
| STX $xx,Y | $96 | 2 | 4 | |
| STX $xxxx | $8E | 3 | 4 | |
| STY | Store Y-Register Speichert den Inhalt des Y-Registers in der angegebenen Adresse | -------- | ||
| STY $xx | $84 | 2 | 3 | |
| STY $xx,X | $94 | 2 | 4 | |
| STY $xxxx | $8C | 3 | 4 | |
| TAX | Transfer Accumulator to X-Register Überträgt den Wert des Akkumulators in das X-Register | N-----Z- | ||
| TAX | $AA | 1 | 2 | |
| TAY | Transfer Accumulator to Y-Register Überträgt den Wert des Akkumulators in das Y-Register | N-----Z- | ||
| TAY | $A8 | 1 | 2 | |
| TSX | Transfer Stackpointer to X-Register Überträgt den Wert des Stackpointers in das X-Register | N-----Z- | ||
| TSX | $BA | 1 | 2 | |
| TXA | Transfer X-Register to Accumulator Überträgt den Wert des X-Register in den Akkumulator | N-----Z- | ||
| TXA | $8A | 1 | 2 | |
| TXS | Transfer X-Register to Stackpointer Überträgt den Wert des X-Register in den Stackpointer | -------- | ||
| TXS | $9A | 1 | 2 | |
| TYA | Transfer Y-Register to Accumulator Überträgt den Wert des Y-Register in den Akkumulator | N-----Z- | ||
| TYA | $98 | 1 | 2 | |