STA ($ll), Y

Aus C64-Wiki
Wechseln zu: Navigation, Suche
Mnemonic: STA ($ll), Y
Opcode: $91
Operand(en): $ll
Anzahl der Bytes: 2
Befehlsgruppe: Transfer-Befehl
Adressierung: indirekt Y-nachindiziert
Beeinflusste Flags im Statusregister:
keine
Taktzyklen: 6


Der Assembler-Befehl STA ($ll), Y speichert den Wert des Akkumulators in die Speicherzelle jener Adresse,
die sich aus der Zeigeradresse (LSB=$ll ; MSB=$ll+1) plus dem Y-Register zusammen setzt.

Man beachte, dass die Adresse selbst in einem 2er-Byte-Block (Word) innerhalb der Zeropage liegt!

Funktionsprinzip

Ass befehl 91.gif

Bedeutung der Buchstaben im Befehl

STA STore Accumulator
Speichere Akkumulator

Beispiel

; Dieses Programm füllt den gesamten Bildschirm mit Leerzeichen.
; Programmstart mit SYS 49152
; Hinweis: Der Bildschirmspeicher ist nur 1000 Bytes groß. Im Beispiel
; wird der einfachheit halber ein Bereich von 1024 Bytes überschrieben.
; Dies hat zur Folge, daß auch die Spritepointer verändert werden.

*=$c000         ; Startadresse des Programmes

SCREENMEM  = $fb
BLOECKE    = $04
ZEICHEN    = " "

start      lda #$00             ; $fc/$fb = $0400 = Bildschirmspeicher
           sta SCREENMEM
           lda #$04
           sta SCREENMEM+1

           ldx #BLOECKE         ; 4 Blöcke (4*256 Byte)

           ldy #$00           												 

           lda #ZEICHEN         ; Füllzeichen = Leerzeichen
schleife   sta (SCREENMEM), Y
           iny                  ; y = y+1
           bne schleife         ; wiederhole bis y=0 (256 Durchläufe) 

           inc SCREENMEM+1      ; nächster Block des Bildschirmspeichers
           dex                  ; Blockschleifenzähler -1
           bne schleife         ; wiederhole bis Blockschleifenzähler=0

           rts                  ; Rücksprung ins Basic
.c000  a9 00  lda #$00
.c002  85 fb  sta $fb
.c004  a9 04  lda #$04
.c006  85 fc  sta $fc
.c008  a2 04  ldx #$04
.c00a  a0 00  ldy #$00									 
.c00c  a9 20  lda #$20
.c00e  91 fb  sta ($fb),y
.c010  c8     iny
.c011  d0 fb  bne $c00e
.c013  e6 fc  inc $fc
.c015  ca     dex
.c016  d0 f6  bne $c00e
.c018  60     rts

Links