DEX
Aus C64-Wiki
(Weitergeleitet von dex)
| Mnemonic: | DEX | ||
| Opcode: | $CA | ||
| Anzahl der Bytes: | 1 | ||
| Befehlsgruppe: | Arithmetik- und Logikbefehle | ||
| Adressierung: | implizit | ||
| Beeinflusste Flags im Statusregister: | |||
| Negative-Flag | |||
| Zero-Flag | |||
| Taktzyklen: | 2 | ||
| 1 | PC | R | Lese Befehl, inkrementiere PC |
| 2 | PC | R | Lese nächstes Befehlsbyte (und verwerfe es), führe Operation durch |
Der Assembler-Befehl DEX vermindert den Inhalt des X-Registers um 1.
Bei einer Verminderung des Wertes 0 wird der neue Wert wieder 255 ($ff).
Funktionsprinzip
Bedeutung der Buchstaben im Befehl
| DEX | DEcrement X-Register |
| Vermindere X-Register |
Beispiel
; Dieses Programm löscht den Kassettenpuffer (192 Bytes) ; Programmstart mit SYS 49152 *=$c000 ; Startadresse des Programms PUFFER=$033c ANZAHL=192 lda #0 ; Löschzeichen ldx #ANZAHL ; Anzahl der zu löschenden Bytes byte_loeschen: sta PUFFER-1,x ; Löschen, Pufferadresse korrigiert, weil x von ANZAHL bis 1 herunter zählt dex ; Speicherindex und gleichzeitig Zähler bne byte_loeschen ; aufhören, wenn Zähler auf 0 rts ; zurück zu BASIC
Speicherauszug:
.c000 a9 00 lda #$00 .c002 a2 c0 ldx #$c0 .c004 9d 3b 03 sta $033b,x .c007 ca dex .c008 d0 fa bne $c004 .c00a 60 rts
Vergleichbare BASIC-Anweisung
Für BASIC V2:
10 X = X - 1
