INY
Aus C64-Wiki
Zur Navigation springenZur Suche springenMnemonic: | INY |
Opcode: | $C8 |
Anzahl der Bytes: | 1 |
Befehlsgruppe: | Arithmetik- und Logikbefehle |
Adressierung: | implizit |
Beeinflusste Flags im Statusregister: | |
Negative-Flag | |
Zero-Flag | |
Taktzyklen: | 2 |
Der Assembler-Befehl INY erhöht den Inhalt des Y-Registers um 1.
Bei einer Erhöhung des Wertes 255 ($ff) wird der neue Wert wieder 0.
Funktionsprinzip
Bedeutung der Buchstaben im Befehl
INY | INcrement Y-Register |
Erhöhe Y-Register |
Beispiel
; Dieses Programm speichert einen Speicherbereich auf Diskette ; Programmstart mit SYS 49152 "NAME",Startadresse,Endadresse ; z.B: SYS 49152 "NAME",4096,8192 (Programm NAME ab Adresse $1000-$2000 speichern) *=$c000 ; Startadresse des Programms CHKKOM = $AEFD FRMEVL = $e257 FRMNUM = $AD8A GETADR = $b7f7 start jsr FRMEVL ; Dateinamen holen und setzen ldx #$08 ; Gerätenummer stx $ba jsr CHKKOM ; auf "," prüfen jsr FRMNUM ; Ausdruck holen und auf numerisch prüfen jsr GETADR sty $c1 ; Startadresse in $c1/$c2 speichern sta $c2 jsr CHKKOM ; auf "," prüfen jsr FRMNUM ; Ausdruck holen und auf numerisch prüfen jsr GETADR ; (Akku = H-Byte; Y-Register = L-Byte) iny ; zur Endadresse den Wert 1 addieren bne endadr clc adc #$01 endadr sty $ae ; Endadresse in $ae/$af speichern sta $af jmp $f5ed ; Save-Routine (implizites rts)
Speicherauszug:
.c000 20 57 e2 jsr $e257 .c003 a2 08 ldx #$08 .c005 86 ba stx $ba .c007 20 fd ae jsr $aefd .c00a 20 8a ad jsr $ad8a .c00d 20 f7 b7 jsr $b7f7 .c010 84 c1 sty $c1 .c012 85 c2 sta $c2 .c014 20 fd ae jsr $aefd .c017 20 8a ad jsr $ad8a .c01a 20 f7 b7 jsr $b7f7 .c01d c8 iny .c01e d0 03 bne $c023 .c020 18 clc .c021 69 01 adc #$01 .c023 84 ae sty $ae .c025 85 af sta $af .c027 4c ed f5 jmp $f5ed
Vergleichbare BASIC-Anweisung
Für BASIC V2:
10 Y = Y + 1