Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
Balkonkraftwerk Speicher und Wechselrichter Tests und Tutorials

(Ausführliche Beschreibung zu den Befehlen)
(Ausführliche Beschreibung zu den Befehlen)
Zeile 103: Zeile 103:
 
; SUBWF R,d  
 
; SUBWF R,d  
 
:Es wird die Rechenoperation <math>R-W</math> ausgeführt und entweder in das W-Register gespeichert (<math>d=w=0</math>) oder in R gespeichert (<math>d=f=1</math>). 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 gespeichert (<math>d=w=0</math>) oder in R gespeichert (<math>d=f=1</math>). 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]]
 +
 +
: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
  
 
===Überprüfung von Rechenergebnissen mit Hilfe des STATUS-Register===
 
===Überprüfung von Rechenergebnissen mit Hilfe des STATUS-Register===

Version vom 25. März 2007, 13:19 Uhr

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

Midrange Assembler Befehle

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
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 gespeichert ([math]d=w=0[/math]) oder in R gespeichert ([math]d=f=1[/math]). 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

Ü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