INC $hhll, X
Aus C64-Wiki
Zur Navigation springenZur Suche springen
| Mnemonic: | INC $hhll, X | |||
| Opcode: | $FE | |||
| Operand(en): | $ll $hh | |||
| Anzahl der Bytes: | 3 | |||
| Befehlsgruppe: | Arithmetik- und Logikbefehle | |||
| Adressierung: | absolut X-indiziert | |||
| Beeinflusste Flags im Statusregister: | ||||
| Negative-Flag | ||||
| Zero-Flag | ||||
| Taktzyklen: | 7 | |||
| 1 | PC | R | Lese Befehl, inkrementiere PC | |
| 2 | PC | R | lese Adress-Lowbyte, inkrementiere PC | |
| 3 | PC | R | hole Highbyte der Adresse, addiere Indexregister X zum Adress-Lowbyte, inkrementiere PC | |
| 4 | Adresse + X | R* | lese von effektiver Adresse, korrigiere Highbyte der effektiven Adresse | |
| 5 | Adresse + X | R | lese erneut von effektiver Adresse | |
| 6 | Adresse + X | W | schreibe bisherigen Wert auf effektive Adresse zurück und führe Operation auf den Wert aus | |
| 7 | Adresse + X | W | schreibe neuen Wert auf effektive Adresse | |
| Anmerkung: | * das Highbyte der effektiven Adresse könnte zu diesem Zeitpunkt ungültig sein | |||
Der Assembler-Befehl INC $hhll, X erhöht den Inhalt der Speicherzelle ($hhll+X) um 1.
Bei einer Erhöhung des Wertes 255 ($ff) wird der neue Wert wieder 0.
Funktionsprinzip
Bedeutung der Buchstaben im Befehl
| INC | INCrement Memory |
| Erhöhe Speicherzelle |
Beispiel
Siehe auch Beispiele bei INC $ll.
; Diese Programm lässt den Bildschirmhintergrund flimmern. ; Programmstart mit SYS 49152 *=$c000 ; Startadresse des Programms ldx #$01 ; Index-Register initialisieren schleife inc $d020,x ; Erhöht den Inhalt von $d021 (Hintergrundfarbe) um eins. jmp schleife ; Endlosschleife
Speicherauszug:
.c000 a2 01 ldx #$01 .c002 fe 20 d0 inc $d020,x .c003 4c 02 c0 jmp $c002
Vergleich des Beispielprogramms mit BASIC
Für BASIC V2:
10 X=1 20 POKE 53280+X,PEEK(53280+X) + 1 AND 255: REM AUF BYTEWERT MASKIEREN 0-255 30 GOTO 20
