STA $ll
Aus C64-Wiki
Zur Navigation springenZur Suche springenMnemonic: | STA $ll |
Opcode: | $85 |
Operand(en): | $ll |
Anzahl der Bytes: | 2 |
Befehlsgruppe: | Transfer-Befehl |
Adressierung: | Zeropage |
Beeinflusste Flags im Statusregister: | |
keine | |
Taktzyklen: | 3 |
Der Assembler-Befehl STA $ll speichert den Wert des Akkumulators in die Speicherzelle der Zeropage-Adresse $ll.
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
; Diese Programm ändert den Blockcursor in einen Strichcursor. ; Es wird der Zeichensatz auf $3000 kopiert und entsprechend abgeändert. ; Programmstart mit SYS 49152 *=$c000 ; Startadresse des Programms lda #$30 sta $38 ; BASIC-RAM-Ende auf $3000 setzen sei ; Interrupts sperren lda $01 and #%11111011 sta $01 ; Ein/Ausgabe-Bereich aus- und Character-ROM einblenden lda #$00 ldy #$d0 sta $5f sty $60 ldy #$e0 sta $5a sty $5b ldy #$40 sta $58 sty $59 jsr $a3bf ; Kopierroutine: $d000-$e000 --> $3000-$4000 lda $01 ora #%00000100 sta $01 ; Ein/Ausgabe-Bereich einblenden cli ; Interrupts wieder zulassen lda $d018 and #%11110000 ora #%00001100 sta $d018 ; Adressbereich des Zeichensatzes auf $3000-$37FF stellen lda #$00 sta $3500 sta $3501 sta $3502 sta $3503 sta $3504 sta $3505 sta $3506 ; neuer Cursor rts ; Rücksprung zu BASIC
Speicherauszug:
.c000 a9 30 lda #$30 .c002 85 38 sta $38 .c004 78 sei .c005 a5 01 lda $01 .c007 29 fb and #$fb .c009 85 01 sta $01 .c00b a9 00 lda #$00 .c00d a0 d0 ldy #$d0 .c00f 85 5f sta $5f .c011 84 60 sty $60 .c013 a0 e0 ldy #$e0 .c015 85 5a sta $5a .c017 84 5b sty $5b .c019 a0 40 ldy #$40 .c01b 85 58 sta $58 .c01d 84 59 sty $59 .c01f 20 bf a3 jsr $a3bf .c022 a5 01 lda $01 .c024 09 04 ora #$04 .c026 85 01 sta $01 .c028 58 cli .c029 ad 18 d0 lda $d018 .c02c 29 f0 and #$f0 .c02e 09 0c ora #$0c .c030 8d 18 d0 sta $d018 .c033 a9 00 lda #$00 .c035 8d 00 35 sta $3500 .c038 8d 01 35 sta $3501 .c03b 8d 02 35 sta $3502 .c03e 8d 03 35 sta $3503 .c041 8d 04 35 sta $3504 .c044 8d 05 35 sta $3505 .c047 8d 06 35 sta $3506 .c04a 60 rts
Vergleichbare BASIC-Anweisung
Für BASIC V2:
10 POKE 2,BYTE
Die Speicherstelle 2 der Zeropage (aus der BASIC-Sicht sind Zeropage-Adressen nichts Besonderes) wird mit dem Wert aus der Variablen BYTE gesetzt.