ORA (RAUTE)$nn
Aus C64-Wiki
Zur Navigation springenZur Suche springenMnemonic: | ORA #$nn |
Opcode: | $09 |
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 ORA #$nn führt eine bitweise ODER-Verknüpfung mit dem Akkumulator und einer Konstanten $nn durch.
Das Ergebnis wird im Akkumulator gespeichert. Dieser Befehl eignet sich besonders zum Setzen bestimmter Bits.
Wahrheitstabelle der ODER-Verknüpfung
Das Ergebnis ist bei der ODER-Verknüpfung gleich 1, wenn mindestens ein Bit gesetzt (1) ist.
0 | 0 | = | 0 |
0 | 1 | = | 1 |
1 | 0 | = | 1 |
1 | 1 | = | 1 |
Funktionsprinzip
Bedeutung der Buchstaben im Befehl
ORA | OR with Accumulator |
Bitweise Oder-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 setzen im sta $d011 ; VIC-Register (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
Vergleichbare Basic-Anweisung
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