ORA (RAUTE)$nn

Aus C64-Wiki
Wechseln zu: Navigation, Suche
Mnemonic: ORA #$nn
Opcode: $09
Operand(en): $nn
Anzahl der Bytes: 2
Befehlsgruppe: Arithmetik und Logikbefehl
Adressierung: direkt
Beeinflusste Flags im Statusregister:
Negativ-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 von einzelnen 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 Grafikmodus ein.
; Nach einem Tastendruck wird wieder in den Textmodus gewechselt.
; Programmstart mit SYS 49152

*=$c000   ; Startadresse des Programmes

GETIN = $ffe4

*=$c000

start    lda $d011       ; Grafikmodus Ein 
         ora #%00100000  ; Bit 5 von $D011 setzen
         sta $d011

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	
.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

10 POKE 53265, PEEK (53265) OR 32 
20 GET A$: IF A$="" THEN 20
30 POKE 53265, PEEK (53265) AND 223 

Links