Titelbild Mikrocontroller

N-Befehle


oben NEG - Two's Complement

Syntax: NEG Rd
Funktion: Dieser Befehl ersetzt den Wert eines Registers durch sein Zweierkomplement. Enthält das Register den Wert 80h, so bleibt dieser unverändert.
Operation: Rd ← 00h - Rd
Operanden: 0 ≤ d ≤ 31
Programmzähler: PC ← PC + 1
Words: 1 (2 Byte)
Zyklen: 1
16 Bit Operations Code: 1001 010d dddd 0001

Flags im Status-Register (SREG):
ITH S V N Z C
--
H: Das H-Flag wird gesetzt, wenn bei der Subtraktion ein Übertrag von Bit 3 nach Bit 4 erfolgte, andernfalls wird das S-Flag gelöscht.
S: Das S-Flag wird gesetzt, wenn entweder das V-Flag oder das N-Flag gesetzt ist. Wenn beide Bits gleich sind, wird das S-Flag gelöscht.
V: Das V-Flag wird gesetzt, wenn aus der Operation ein Zweierkomplement- Überlauf erfolgt, andernfalls wird das Flag gelöscht. Ein Zweierkomplement- Überlauf kann nur auftreten, wenn Rd vor der Operation den Wert 80h hatte.
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.
C: Das C-Flag wird gesetzt, wenn bei der Subtraktion ein Übertrag von Null erfolgte, andernfalls wird das Flag gelöscht. Das C-Flag wird in allen Fällen gesetzt, außer wenn das Ergebnis nach der Operation 00h ist.

Beispiel:
    sub r3,r0    ;R0 von R3 subtrahieren
    brpl plus    ;Springen, wenn das Ergebnis positiv ist.
    neg r3        ;Zweierkomplement von R3 bilden
plus:
    nop        ;Weiter, Leerbefehl


oben NOP - No Operation

Syntax: NOP
Funktion: Dieser Befehl führt keine Operation aus, es handelt sich um einen Leerbefehl, der einen Taktzyklus lang dauert.
Operation: keine
Operanden: keine
Programmzähler: PC ← PC + 1
Words: 1 (2 Byte)
Zyklen: 1
16 Bit Operations Code: 0000 0000 0000 0000

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