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):
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
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):
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
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):
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)