Titelbild Mikrocontroller

O-Befehle


oben OR - Logical OR

Syntax: OR Rd, Rr
Funktion: Führt eine logische ODER-Verknüpfung der Inhalte zweier Register durch, das Ergebnis wird im Quellregister Rd abgelegt.
Operation: Rd ← Rd v Rr
Operanden: 0 ≤ d ≤ 31, 0 ≤ r ≤ 31
Programmzähler: PC ← PC + 1
Words: 1 (2 Byte)
Zyklen: 1
16 Bit Operations Code: 0010 10rd dddd rrrr

Flags im Status-Register (SREG):
ITHSVNZC
---0-
S: Das S-Flag wird gesetzt, wenn das N-Flag gesetzt ist, andernfalls wird das S-Flag gelöscht.
V: Das V-Flag wird gelöscht.
N: Das N-Flag wird gesetzt, wenn das MSB des Ergebnisses gesetzt ist, andernfalls wird es gelöscht.
Z: Das Z-Flag wird gesetzt, wenn das Ergebnis 00h ist, andernfalls wird das Flag gelöscht.

Beispiel:
or r1, r0    ;ODER-Verknüpfung der Register R0 und R1
oder:
ldi r16,1    ;Maskierungsbyte 0000 0001 in R16 schreiben
or r2,r16    ;Setzen des unteren Bits in R2

oben ORI - Logical OR with Immediate

Syntax: ORI Rd,K
Funktion: Führt eine logische ODER-Verknüpfung zwischen einem Register und einer Konstanten durch, das Ergebnis wird im Quellregister Rd abgelegt. Der Befehl kann nur mit den oberen 16 Registern durchgeführt werden.
Operation: Rd ← Rd v K
Operanden: 16 ≤ d ≤ 31, 0 ≤ K ≤ 255
Programmzähler: PC ← PC + 1
Words: 1 (2 Byte)
Zyklen: 1
16 Bit Operations Code: 0110 KKKK dddd KKKK

Flags im Status-Register (SREG):
ITHSVNZC
---0-
S: Das S-Flag wird gesetzt, wenn das N-Flag gesetzt ist, andernfalls wird das S-Flag gelöscht.
V: Das V-Flag wird gelöscht.
N: Das N-Flag wird gesetzt, wenn das MSB des Ergebnisses gesetzt ist, andernfalls wird es gelöscht.
Z: Das Z-Flag wird gesetzt, wenn das Ergebnis 00h ist, andernfalls wird das Flag gelöscht.

Beispiel:
ori r1,$F0    ;Setzen der obern 4 Bits im Register R1

oben OUT - Store Register to I/O-Location

Syntax: OUT A,Rr
Funktion: Dieser Befehl kopiert den Wert des Registers Rr in ein Register (Ports, Timer, etc) im I/O-Speicher. Das Register Rr wird dabei nicht verändert.
Operation: I/O(A) ← Rr
Operanden: 0 ≤ r ≤ 31, 0 ≤ A ≤ 63
Programmzähler: PC ← PC + 1
Words: 1 (2 Byte)
Zyklen: 1
16 Bit Operations Code: 1011 1AAr rrrr AAAA

Flags im Status-Register (SREG):
ITHSVNZC
--------

Beispiel:
clr r3        ;Alle Bits in R3 löschen
ser r4        ;Alle Bits in R4 setzen
out $18,r3    ;R3 an Port B ausgeben (alle Bits auf 0)
nop        ;Warten, Leerbefehl
out $18,r4    ;R4 an Port B ausgeben (alle Bits auf 1)

Impressum