STA ($ll, X)

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

Ass befehl 81.gif

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

Beispielprogramme