TYA

Aus C64-Wiki
Zur Navigation springenZur Suche springen
Mnemonic: TYA
Opcode: $98
Anzahl der Bytes: 1
Befehlsgruppe: Datentransferbefehl
Adressierung: implizit
Beeinflusste Flags im Statusregister:
Negative-Flag
Zero-Flag
Taktzyklen: 2


Der Assembler-Befehl TYA kopiert das Y-Register in den Akkumulator.
Abhängig vom transferierten Wert werden auch im Statusregister Negative-Flag und Zero-Flag verändert, was explizit oder als Nebeneffekt dazu genutzt werden kann, um das Y-Register entsprechend zu testen (platzsparender als CPY), sofern die Beeinflussung des Akkumulators hierbei nicht stört (siehe Beispiel).

Funktionsprinzip

Ass befehl 98.gif

Bedeutung der Buchstaben im Befehl

TYA Transfer Y-Register to Accumulator
Kopiere Y-Register in den Akkumulator

Beispiel

Kopieren einer Zeichenkette (Länge 0 bis 255) vom Speicherbereich zeigend auf FROM_STR (Zeropage) zu Speicherbereich zeigend auf TO_STR (ebenso ein Zeiger in der Zeropage):

         ldy LEN             ; die Anzahl der zu übertragenden Bytes der Zeichenkette
         beq fertig          ; wenn Länge 0, dann nichts zu tun
kopieren dey                 ; Länge LEN erfordert für den indizierten Zugriff Index (LEN-1) bis 0
         lda (FROM_STR),y    ; ein Byte holen
         sta (TO_STR),y      ; und kopieren
         tya                 ; testen auf 0 (Wert im Akku wird nicht verwendet)
         bne kopieren        ; Ende, wenn Index 0 erreicht, aber nach dem Kopieren
fertig

Siehe auch PHA-Beispiel in der Anwendung des Registerkopierens.

Vergleichbare BASIC-Anweisung

Für BASIC V2:

10 A = Y

Beispielprogramme