STA $ll, X
Aus C64-Wiki
Zur Navigation springenZur Suche springen
| Mnemonic: | STA $ll,X | |||
| Opcode: | $95 | |||
| Operand(en): | $ll | |||
| Anzahl der Bytes: | 2 | |||
| Befehlsgruppe: | Transferbefehl | |||
| Adressierung: | Zeropage X-indiziert | |||
| Beeinflusste Flags im Statusregister: | ||||
| keine | ||||
| Taktzyklen: | 4 | |||
| 1 | PC | R | Lese Befehl, inkrementiere PC | |
| 2 | PC | R | hole Adresse, inkrementiere PC | |
| 3 | Adresse | R | lese von Adresse und addiere Index-Register | |
| 4 | Adresse + I* | W | schreiben auf effektive Adresse | |
| Anmerkung: | I bezeichnet das Index-Register (X oder Y) | |||
| Anmerkung: | * das Highbyte der effektiven Adresse ist immer Null, d.h. Seitenüberschreitungen werden nicht beachtet | |||
Der Assembler-Befehl STA $ll,X speichert den Wert des Akkumulators in die Speicherstelle mit Zeropage-Adresse ($ll+X).
Der Akkumulator ist ein 8-Bit-Register mit einem Wert zwischen 0 und 255 ($ff).
Funktionsprinzip
Bedeutung der Buchstaben im Befehl
| STA | STore Accumulator |
| Speichere Akkumulator |
Beispiel
Einen 3 Byte umfassenden String-Descriptor einer Zeichenkette von $61-$62 auf den String-Descriptor-Stack (SD-Stack) für temporäre Zeichenketten ablegen, welcher sich in der Zeropage befindet:
ldx $16 ; Zeiger auf freies Element am lda $61 ; String-Länge sta $00,x ; auf SD-Stack lda $62 ; String-Adresse Low-Byte sta $01,x ; auf SD-Stack lda $63 ; String-Adresse High-Byte sta $02,x ; auf SD-Stack inx ; nächstes freie SD-Stack-Element inx inx stx $16 ; neuen SD-Stack-Zeiger speichern
Frei nach C64 BASIC V2 ROM: Save String Descriptor $B4D5.
