Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
LiFePO4 Speicher Test

(Ausführliche Beschreibung zu den Befehlen)
(Ausführliche Beschreibung zu den Befehlen)
Zeile 101: Zeile 101:
  
  
; SUBLW k
+
; SUBLW k <hr>
 
:Es wird die Rechenoperation <math>k-W</math> ausgeführt und in das W-Register gespeichert. Dieser Befehl beeinflusst das STATUS-Register. Siehe hierzu  [[#Überprüfung von Rechenergebnissen mit Hilfe des STATUS-Register|Überprüfung von Rechenergebnissen mit Hilfe des STATUS-Register]]
 
:Es wird die Rechenoperation <math>k-W</math> ausgeführt und in das W-Register gespeichert. Dieser Befehl beeinflusst das STATUS-Register. Siehe hierzu  [[#Überprüfung von Rechenergebnissen mit Hilfe des STATUS-Register|Überprüfung von Rechenergebnissen mit Hilfe des STATUS-Register]]
  
; SUBWF R,d  
+
; SUBWF R,d <hr>
 
:Es wird die Rechenoperation <math>R-W</math> ausgeführt und entweder in das W-Register ('''d'''=<tt>W</tt>=<tt>0</tt>) oder in R gespeichert ('''d'''=<tt>F</tt>=<tt>1</tt>). Dieser Befehl beeinflusst das STATUS-Register. Siehe hierzu  [[#Überprüfung von Rechenergebnissen mit Hilfe des STATUS-Register|Überprüfung von Rechenergebnissen mit Hilfe des STATUS-Register]]
 
:Es wird die Rechenoperation <math>R-W</math> ausgeführt und entweder in das W-Register ('''d'''=<tt>W</tt>=<tt>0</tt>) oder in R gespeichert ('''d'''=<tt>F</tt>=<tt>1</tt>). Dieser Befehl beeinflusst das STATUS-Register. Siehe hierzu  [[#Überprüfung von Rechenergebnissen mit Hilfe des STATUS-Register|Überprüfung von Rechenergebnissen mit Hilfe des STATUS-Register]]
  
Zeile 115: Zeile 115:
 
</dd></dl><!-- zum einrücken da-->
 
</dd></dl><!-- zum einrücken da-->
  
;SWAPF R,d  
+
;SWAPF R,d <hr>
 
:Es es werden die ersten 4 bit mit den letzten 4 bit vertauscht und entweder in das W-Register ('''d'''=<tt>W</tt>=<tt>0</tt>) oder in R gespeichert ('''d'''=<tt>F</tt>=<tt>1</tt>).
 
:Es es werden die ersten 4 bit mit den letzten 4 bit vertauscht und entweder in das W-Register ('''d'''=<tt>W</tt>=<tt>0</tt>) oder in R gespeichert ('''d'''=<tt>F</tt>=<tt>1</tt>).
 
:Beispiel:
 
:Beispiel:
Zeile 126: Zeile 126:
 
</dd></dl><!-- zum einrücken da-->
 
</dd></dl><!-- zum einrücken da-->
  
; XORLW k
+
; XORLW k<hr>
 
:Es wird die Rechenoperation <math>W\ xor\ k</math> ausgeführt und in das W-Register gespeichert. Dieser Befehl setzt das Z bit des STATUS-Register, falls das Ergebnis 0 ist.
 
:Es wird die Rechenoperation <math>W\ xor\ k</math> ausgeführt und in das W-Register gespeichert. Dieser Befehl setzt das Z bit des STATUS-Register, falls das Ergebnis 0 ist.
 
:Zur Verdeutlichung der Rechenoperation:
 
:Zur Verdeutlichung der Rechenoperation:
Zeile 136: Zeile 136:
 
</dd></dl><!-- zum einrücken da-->
 
</dd></dl><!-- zum einrücken da-->
  
; XORWF R,d
+
; XORWF R,d <hr>
 
:Es wird die Rechenoperation <math>W\ xor\ R</math> ausgeführt und entweder in das W-Register ('''d'''=<tt>W</tt>=<tt>0</tt>) oder in R gespeichert ('''d'''=<tt>F</tt>=<tt>1</tt>). Vergleiche XORLW
 
:Es wird die Rechenoperation <math>W\ xor\ R</math> ausgeführt und entweder in das W-Register ('''d'''=<tt>W</tt>=<tt>0</tt>) oder in R gespeichert ('''d'''=<tt>F</tt>=<tt>1</tt>). Vergleiche XORLW
  

Version vom 25. März 2007, 14:31 Uhr

Hier soll nach einiger Zeit eine vollständige Hilfe zu den PIC Assembler Befehlen entstehen.

Midrange

Kurzübersicht Assembler Befehle

ADDLW Add literal and W
ADDWF Add W and f
ANDLW AND literal with W
ANDWF AND W with f
BCF Bit Clear f
BSF Bit Set f
BTFSC Bit Test f, Skip if Clear
BTFSS Bit Test f, Skip if Set
CALL Call subroutine
CLRF Clear f
CLRW Clear W
CLRWDT Clear Watchdog Timer
COMF Complement f
DECF Decrement f
DECFSZ Decrement f, Skip if 0
GOTO Go to address
INCF Increment f
INCFSZ Increment f, Skip if 0
IORLW Inclusive OR literal with W
IORWF Inclusive OR W with f
MOVF Move f
MOVLW Move literal to W
MOVWF Move W to f
NOP No Operation
RETFIE Return from interrupt
RETLW Return with literal in W
RETURN Return from Subroutine
RLF Rotate Left f through Carry
RRF Rotate Right f through Carry
SLEEP Go into standby mode
SUBLW Subtract W from literal
SUBWF Subtract W from f
SWAPF Swap nibbles in f
XORLW Exclusive OR literal with W
XORWF Exclusive OR W with f

Kurzübersicht zum Ausdrucken


Ausführliche Beschreibung zu den Befehlen

Erklärungen zu den Verwendeten Platzhaltern:

  • k stellt einen fest definierten Wert da. z.B. 0x20, d'42' oder b'00101010'
  • W steht für das W-Register.
  • d steht für destination. Im code wird d durch ein w (der Wert wird in das W-Register gespeichert ) oder f (der Wert wird in das davor definierte Register gespeichert)
  • R steht für ein Register
  • fett geschrieben Bedeutet, dass es ein Platzhalter ist und im Quellcode ersetzt werden muss
  • Schreibmaschinenstil bedeutet, dass es so im Quellcode geschrieben werden kann.


SUBLW k
Es wird die Rechenoperation [math]k-W[/math] ausgeführt und in das W-Register gespeichert. Dieser Befehl beeinflusst das STATUS-Register. Siehe hierzu Überprüfung von Rechenergebnissen mit Hilfe des STATUS-Register
SUBWF R,d
Es wird die Rechenoperation [math]R-W[/math] ausgeführt und entweder in das W-Register (d=W=0) oder in R gespeichert (d=F=1). Dieser Befehl beeinflusst das STATUS-Register. Siehe hierzu Überprüfung von Rechenergebnissen mit Hilfe des STATUS-Register
Beispiel:
movlw d'20'  ;schreibe 20 in das W-Register movwf Register1  ;bewegt das W-Register in das Register1 movlw d'10'  ;schreibt 10 in das W-Register SUBWF Register1,F ;schreibt Register1(20)-W(10) in Register1
SWAPF R,d
Es es werden die ersten 4 bit mit den letzten 4 bit vertauscht und entweder in das W-Register (d=W=0) oder in R gespeichert (d=F=1).
Beispiel:
movlw b'00001111' ;schreibe b'00001111' in das W-Register movwf Register1  ;bewegt das W-Register in das Register1 SWAPF Register1,W ;vertauscht die ersten 4 bit mit den letzen  ;4 bit in Register 1 und schreibt es in das W-Register  ;im W-Register steht nun b'11110000'
XORLW k
Es wird die Rechenoperation [math]W\ xor\ k[/math] ausgeführt und in das W-Register gespeichert. Dieser Befehl setzt das Z bit des STATUS-Register, falls das Ergebnis 0 ist.
Zur Verdeutlichung der Rechenoperation:
0011 1010 ---- xor 1001
XORWF R,d
Es wird die Rechenoperation [math]W\ xor\ R[/math] ausgeführt und entweder in das W-Register (d=W=0) oder in R gespeichert (d=F=1). Vergleiche XORLW

Überprüfung von Rechenergebnissen mit Hilfe des STATUS-Register

Auswirkungen auf das STATUS-Register bei Subtraktionen
Ergebnis STATUS,C STATUS,Z
positiv 1 0
negativ 0 0
Null 1 1
Auswirkungen auf das STATUS-Register bei Addition
Ergebnis STATUS,C STATUS,Z
positiv 0 0
Überlauf 1 0
Null 1 1

LiFePO4 Speicher Test