AND (RAUTE)$nn
Aus C64-Wiki
Zur Navigation springenZur Suche springenMnemonic: | AND #$nn |
Opcode: | $29 |
Operand(en): | $nn |
Anzahl der Bytes: | 2 |
Befehlsgruppe: | Arithmetik und Logikbefehl |
Adressierung: | unmittelbar |
Beeinflusste Flags im Statusregister: | |
Negative-Flag | |
Zero-Flag | |
Taktzyklen: | 2 |
Der Assembler-Befehl AND #$nn führt eine bitweise UND-Verknüpfung mit dem Akkumulator und einer Konstanten $nn durch.
Das Ergebnis wird im Akkumulator gespeichert.
Dieser Befehl eignet sich besonders zum Löschen (Ausmaskieren) einzelner Bits.
Wahrheitstabelle der UND-Verknüpfung
Das Ergebnis ist bei der UND-Verknüpfung gleich 1, wenn beide Bits gesetzt (1) sind.
0 | 0 | = | 0 |
0 | 1 | = | 0 |
1 | 0 | = | 0 |
1 | 1 | = | 1 |
Funktionsprinzip
Bedeutung der Buchstaben im Befehl
AND | AND with Accumulator |
Bitweise UND-Verknüpfung mit Akkumulator |
Beispiel
; Dieses Programm schaltet den Bitmap-Modus ein. ; Nach einem Tastendruck wird wieder in den Textmodus gewechselt. ; Programmstart mit SYS 49152 *=$c000 ; Startadresse des Programms GETIN = $ffe4 *=$c000 start lda $d011 ; Grafikmodus ein ora #%00100000 ; Bit 5 von $D011 setzen sta $d011 ; (Achtung, verstellt ggf. Rasterzeilen-Interrupt) eingabe jsr GETIN ; Zeichen einlesen beq eingabe ; warte auf Tastendruck lda $d011 ; Grafikmodus aus and #%11011111 ; Bit 5 von $D011 löschen sta $d011 rts ; Rücksprung
Speicherauszug:
.c000 ad 11 d0 lda $d011 .c003 09 20 ora #$20 .c005 8d 11 d0 sta $d011 .c008 20 e4 ff jsr $ffe4 .c00b f0 fb beq $c008 .c00d ad 11 d0 lda $d011 .c010 29 df and #$df .c012 8d 11 d0 sta $d011 .c015 60 rts
Vergleich des Beispielprogramms mit BASIC
Für BASIC V2:
10 POKE 53265, PEEK (53265) OR 32 20 GET A$: IF A$="" THEN 20 30 POKE 53265, PEEK (53265) AND 223