Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
Rasenmaehroboter fuer schwierige und grosse Gaerten im Test

Zeile 238: Zeile 238:
  
 
{|{{Blauetabelle}}
 
{|{{Blauetabelle}}
| '''CLRF'''  
+
| '''CLRWDT'''  
| '''Clear f'''  
+
| '''Clear Watchdog Timer'''  
 
|-
 
|-
 
|Syntax:  
 
|Syntax:  
| CLRF f
+
| CLRWDT
 +
|-
 +
|Operanten:
 +
| /
 +
|-
 +
|Operation:
 +
| 00h → WDT,
 +
0 → WDT prescaler,
 +
1 → TO,
 +
1 → PD
 +
|-
 +
|Beeinflusste Statusbits:
 +
| TO, PD
 +
|-
 +
|Beschreibung:
 +
| Der Watchdogtimer (TMR0) wird resettet. es wird ebenfalls der Prescaler resettet. Die Statusbits T0 und PD werden gesetzt.
 +
|}
 +
 
 +
 
 +
{|{{Blauetabelle}}
 +
| '''COMF'''
 +
| '''Complement f'''
 +
|-
 +
|Syntax:
 +
| COMF f,d
 +
|-
 +
|Operanten:
 +
| 0 ≤ f ≤ 127 und
 +
d ∈ [0,1]
 +
|-
 +
|Operation:
 +
| (f) → (destination)
 +
|-
 +
|Beeinflusste Statusbits:
 +
| Z
 +
|-
 +
|Beschreibung:
 +
| Alle Bits des Registers f werden invertiert (1 wird 0 und 0 wird 1) und das Ergebnis entweder in den Arbeitsregister W (d=0) oder wieder in das Register f (d=1) gespeichert.
 +
|}
 +
 
 +
 
 +
{|{{Blauetabelle}}
 +
| '''DECF'''
 +
| '''Decrement f'''
 +
|-
 +
|Syntax:
 +
| DECF f,d
 
|-
 
|-
 
|Operanten:  
 
|Operanten:  
 
| 0 ≤ f ≤ 127
 
| 0 ≤ f ≤ 127
 +
d ∈ [0,1]
 
|-
 
|-
 
|Operation:  
 
|Operation:  
| 00h → (f),
+
| (f) 1 → (destination)
1 → Z
+
 
|-
 
|-
 
|Beeinflusste Statusbits:  
 
|Beeinflusste Statusbits:  
Zeile 255: Zeile 301:
 
|-
 
|-
 
|Beschreibung:  
 
|Beschreibung:  
| Das komplette Byte im Register f wird gelöscht (lauter 0er). Das hat zur folge, das Z gesetzt wird.
+
| Das Register f wird decrementiert (f=f-1) und das Ergebnis entweder in den Arbeitsregister W (d=0) oder wieder in das Register f (d=1) gespeichert.
 
|}
 
|}
  
 +
 +
{|{{Blauetabelle}}
 +
| '''DECFSZ'''
 +
| '''Decrement f, skip if 0'''
 +
|-
 +
|Syntax:
 +
| DECFSZ f,d
 +
|-
 +
|Operanten:
 +
| 0 ≤ f ≤ 127
 +
d ∈ [0,1]
 +
|-
 +
|Operation:
 +
| (f) – 1 → (destination), skip if result = 0
 +
|-
 +
|Beeinflusste Statusbits:
 +
| Z
 +
|-
 +
|Beschreibung:
 +
| Das Register f wird decrementiert (f=f-1) und das Ergebnis entweder in den Arbeitsregister W (d=0) oder wieder in das Register f (d=1) gespeichert. Danach wird überprüft, ob das Ergebnis 0 war. Wenn ja, dann wird an Stelle des nächsten Befehls ein NOP durchgeführt.
 +
|}
 +
 +
 +
{|{{Blauetabelle}}
 +
| '''Goto'''
 +
| '''uncontitional Branch'''
 +
|-
 +
|Syntax:
 +
| GOTO k
 +
|-
 +
|Operanten:
 +
| 0 ≤ k ≤ 2047
 +
|-
 +
|Operation:
 +
| k → PC<10:0>,
 +
PCLATH<4:3> → PC<12:11>
 +
|-
 +
|Beeinflusste Statusbits:
 +
| /
 +
|-
 +
|Beschreibung:
 +
| Goto veranlasst einen Sprung an die Adresse k im Programmspeicher. Es werden aber nur die 11 niedrigstens Bit der Adresse mit GOTO bestimmt, die beiden höchsten werden aus dem Register PCLATH geladen.
 
|}
 
|}

Version vom 10. April 2007, 13:47 Uhr

!!UNTER BEARBEITUNG!!

ADDLW ADD Zahl und W
Syntax: ADDLW k
Operanten: 0 ≤ k ≤ 255
Operation: (W) + k → (W)
Beeinflusste Statusbits: C, DC, Z
Beschreibung: Der Inhalt des W Registers wird mit der 8-Bit Zahl k ADD addiert und das Ergebnis landet wieder im W Register


ADDWF ADD W und f
Syntax: ADDWF f,d
Operanten: 0 ≤ f ≤ 127 und d ∈ [0,1]
Operation: (W) + (f) → (destination)
Beeinflusste Statusbits: C, DC, Z
Beschreibung: Der Inhalt des W Registers wird mit dem Register f addiert und das Ergebnis landet entweder im W Register (d=0) oder im Register f (d=1)


ANDLW AND Zahl mit W
Syntax: ADDLW k
Operanten: 0 ≤ k ≤ 255
Operation: (W) + k → (W)
Beeinflusste Statusbits: Z
Beschreibung: Der Inhalt des W Registers wird mit der 8-Bit Zahl k verundent und das Ergebnis landet wieder im W Register


ANDWF AND W mit f
Syntax: ANDWF f,d
Operanten: 0 ≤ f ≤ 127 und d ∈ [0,1]
Operation: (W) .AND. (f) → (destination)
Beeinflusste Statusbits: Z
Beschreibung: Der Inhalt des W Registers wird mit dem Register f verundet und das Ergebnis landet entweder im W Register (d=0) oder im Register f (d=1)


BCF Bit Clear f
Syntax: BCF f,b
Operanten: 0 ≤ f ≤ 127 und 0 ≤ b ≤ 7
Operation: 0 → (f)
Beeinflusste Statusbits: /
Beschreibung: Bit ‘b’ in Register ‘f’ wird auf 0 gesetzt


BSF Bit Set f
Syntax: BSF f,b
Operanten: 0 ≤ f ≤ 127 und 0 ≤ b ≤ 7
Operation: 0 → (f<b>)
Beeinflusste Statusbits: /
Beschreibung: Bit ‘b’ in Register ‘f’ wird auf 1 gesetzt


BTFSC Bit Test f, Skip if Clear
Syntax: BTFSC f,b
Operanten: 0 ≤ f ≤ 127 und 0 ≤ b ≤ 7
Operation: skip if (f<b>) = 0
Beeinflusste Statusbits: /
Beschreibung: Wenn das Bit b im Register f 0 ist, dann wird der nachfolgende Befehl nicht und stattdessen ein NOP ausgeführt. Wenn das Bit b 1 ist, dann wird der nächste Befehl ausgeführt.


BTFSS Bit Test f, Skip if Set
Syntax: BTFSS f,b
Operanten: 0 ≤ f ≤ 127 und 0 ≤ b ≤ 7
Operation: skip if (f<b>) = 1
Beeinflusste Statusbits: /
Beschreibung: Wenn das Bit b im Register f 1 ist, dann wird der nachfolgende Befehl nicht und stattdessen ein NOP ausgeführt. Wenn das Bit b 0 ist, dann wird der nächste Befehl ausgeführt.


CALL Call Subroutine
Syntax: CALL k
Operanten: 0 ≤ k ≤ 2047
Operation: (PC) + 1 → TOS,

k → PC<10:0>, (PCLATH<4:3>) → PC<12:11>

Beeinflusste Statusbits: /
Beschreibung: Als erstes wird die Rückkehradresse (PC+1) in den Stack geschrieben. Dann Die 11bit Sprungadresse in den PC geladen (die 2 MSB kommen aus dem PCLATH).


CLRF Clear f
Syntax: CLRF f
Operanten: 0 ≤ f ≤ 127
Operation: 00h → (f),

1 → Z

Beeinflusste Statusbits: Z
Beschreibung: Das komplette Byte im Register f wird gelöscht (lauter 0er). Das hat zur folge, das Z gesetzt wird.


CLRW Clear W
Syntax: CLRW
Operanten: /
Operation: 00h → (W),

1 → Z

Beeinflusste Statusbits: Z
Beschreibung: Das Statusregister wird gelöscht und anschließed das Z-Bit auf 1 gesetzt.


CLRWDT Clear Watchdog Timer
Syntax: CLRWDT
Operanten: /
Operation: 00h → WDT,

0 → WDT prescaler, 1 → TO, 1 → PD

Beeinflusste Statusbits: TO, PD
Beschreibung: Der Watchdogtimer (TMR0) wird resettet. es wird ebenfalls der Prescaler resettet. Die Statusbits T0 und PD werden gesetzt.


COMF Complement f
Syntax: COMF f,d
Operanten: 0 ≤ f ≤ 127 und

d ∈ [0,1]

Operation: (f) → (destination)
Beeinflusste Statusbits: Z
Beschreibung: Alle Bits des Registers f werden invertiert (1 wird 0 und 0 wird 1) und das Ergebnis entweder in den Arbeitsregister W (d=0) oder wieder in das Register f (d=1) gespeichert.


DECF Decrement f
Syntax: DECF f,d
Operanten: 0 ≤ f ≤ 127

d ∈ [0,1]

Operation: (f) – 1 → (destination)
Beeinflusste Statusbits: Z
Beschreibung: Das Register f wird decrementiert (f=f-1) und das Ergebnis entweder in den Arbeitsregister W (d=0) oder wieder in das Register f (d=1) gespeichert.


DECFSZ Decrement f, skip if 0
Syntax: DECFSZ f,d
Operanten: 0 ≤ f ≤ 127

d ∈ [0,1]

Operation: (f) – 1 → (destination), skip if result = 0
Beeinflusste Statusbits: Z
Beschreibung: Das Register f wird decrementiert (f=f-1) und das Ergebnis entweder in den Arbeitsregister W (d=0) oder wieder in das Register f (d=1) gespeichert. Danach wird überprüft, ob das Ergebnis 0 war. Wenn ja, dann wird an Stelle des nächsten Befehls ein NOP durchgeführt.


Goto uncontitional Branch
Syntax: GOTO k
Operanten: 0 ≤ k ≤ 2047
Operation: k → PC<10:0>,

PCLATH<4:3> → PC<12:11>

Beeinflusste Statusbits: /
Beschreibung: Goto veranlasst einen Sprung an die Adresse k im Programmspeicher. Es werden aber nur die 11 niedrigstens Bit der Adresse mit GOTO bestimmt, die beiden höchsten werden aus dem Register PCLATH geladen.

LiFePO4 Speicher Test