| 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):
| 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
| 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):
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)
Quelle: Englisches Datenblatt Atmel.