STA ($ll, X)
Aus C64-Wiki
Zur Navigation springenZur Suche springenMnemonic: | STA ($ll, X) |
Opcode: | $81 |
Operand(en): | $ll |
Anzahl der Bytes: | 2 |
Befehlsgruppe: | Transfer-Befehl |
Adressierung: | indirekt X-indiziert |
Beeinflusste Flags im Statusregister: | |
keine | |
Taktzyklen: | 6 |
Der Assembler-Befehl STA ($ll,X) speichert den Wert des Akkumulators in die Speicherzelle jener Adresse, die sich aus der Zeigeradresse (LSB= $ll+X ; MSB= $ll+X+1) bildet.
Man beachte, dass die Adresse selbst in einem Zwei-Byte-Block (Word) innerhalb der Zeropage liegt!
Funktionsprinzip
Bedeutung der Buchstaben im Befehl
STA | STore Accumulator |
Speichere Akkumulator |
Beispiel
Auszug aus dem 1541 CBM-DOS 2.6 ROM-Listing: bei Adresse $F3C0 von $F3B1/62385: Read block header, verify ID
CFF1: 48 PHA ; save data byte CFF2: 20 93 DF JSR $DF93 ; get buffer number CFF5: 10 06 BPL $CFFD ; associated buffer? CFF7: 68 PLA CFF8: A9 61 LDA #$61 CFFA: 4C C8 C1 JMP $C1C8 ; 61, 'file not open' Jump from $CFF5, $DD92: CFFD: 0A ASL ; buffer number times 2 CFFE: AA TAX ; as index CFFF: 68 PLA ; data byte D000: 81 99 STA ($99,X) ; write in buffer D002: F6 99 INC $99,X ; increment buffer pointer D004: 60 RTS