INX

Aus C64-Wiki
(Weitergeleitet von inx)
Zur Navigation springenZur Suche springen
Mnemonic: INX
Opcode: $E8
Anzahl der Bytes: 1
Befehlsgruppe: Arithmetik- und Logikbefehle
Adressierung: implizit
Beeinflusste Flags im Statusregister:
Negative-Flag
Zero-Flag
Taktzyklen: 2


Der Assembler-Befehl INX erhöht den Inhalt des X-Registers um 1.
Bei einer Erhöhung des Wertes 255 ($ff) wird der neue Wert wieder 0.

Funktionsprinzip

Ass befehl e8.gif

Bedeutung der Buchstaben im Befehl

INX INcrement X-Register
Erhöhe X-Register

Beispiel

; Dieses Programm löscht den Bildschirm und gibt einen Text auf einer definierten Position aus.
; Programmstart mit SYS 49152

*=$c000   ; Startadresse des Programms

BSOUT = $ffd2

start        lda #147
             jsr BSOUT         ; Bildschirm löschen

             ldx #03           ; Zeile 3
             ldy #10           ; Spalte 10
             clc               ; clc = Cursorposition setzen; sec = Cursorposition lesen
             jsr $fff0         ; Cursor setzen

             ldx #$00
schleife     lda TEXT,X
             beq ende          ; Zeichen solange am Bildschirm ausgeben bis $00   
             jsr BSOUT         
             inx
             jmp schleife

ende         rts               ; Rücksprung ins BASIC

TEXT         .text "C64-WIKI"
             .byte $00         ; Endemarkierung

Speicherauszug:

.c000	 a9 93		lda #$93
.c002	 20 d2 ff	jsr $ffd2
.c005	 a2 03		ldx #$03
.c007	 a0 0a		ldy #$0a
.c009	 18		clc
.c00a	 20 f0 ff	jsr $fff0
.c00d	 a2 00		ldx #$00
.c00f	 bd 1c c0	lda $c01c,x
.c012	 f0 07		beq $c01b
.c014	 20 d2 ff	jsr $ffd2
.c017	 e8		inx
.c018	 4c 0f c0	jmp $c00f
.c01b	 60		rts

>c01c	 43 36 34 2d 57 49 4b 49 00

Vergleichbare BASIC-Anweisung

Für BASIC V2:

10 X = X + 1

Beispielprogramme