TYA
Aus C64-Wiki
Zur Navigation springenZur Suche springenMnemonic: | 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
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