Server read only due to being migrated.
Das Wiki ist im Nur-Lese-Modus, da es gerade migriert wird.
DEC $hhll, X
Aus C64-Wiki
Zur Navigation springenZur Suche springenMnemonic: | DEC $hhll,X | |||
Opcode: | $DE | |||
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 DEC $hhll,X vermindert den Inhalt der Speicherzelle ($hhll+X) um 1.
Bei einer Verminderung des Wertes 0 wird der neue Wert wieder 255 ($ff).
Funktionsprinzip
Fehler beim Erstellen des Vorschaubildes: Die Miniaturansicht konnte nicht am vorgesehenen Ort gespeichert werden
Bedeutung der Buchstaben im Befehl
DEC | DECrement Memory |
Vermindere Speicherzelle |
Beispiel
Siehe auch Beispiele bei DEC $ll.
; Diese Programm lässt den Bildschirmhintergrund flimmern. ; Programmstart mit SYS 49152 *=$c000 ; Startadresse des Programms ldx #$01 ; Index-Register initialisieren schleife dec $d020,x ; Vermindert den Inhalt von $d021 (Hintergrundfarbe) um eins. jmp schleife ; Endlosschleife
Speicherauszug:
.c000 a2 01 ldx #$01 .c002 de 20 d0 dec $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