ORA (RAUTE)$nn

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

Ass befehl 09.gif

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 

Beispielprogramme