Forum: Mikrocontroller und Digitale Elektronik Bootloader mpasm - was bedeutet ,f in "decf U1BRGL,f"


von Dittmar L. (dittmarlange)


Lesenswert?

Hallo zusammen,
für die Profis unter den Assembler-Programmierern sicher eine banale 
Frage:

Bei Microchip gab es mal ein Bootloader-Generator-Tool, welches 
automatisiert Assembler-Code erzeugen konnte. Ich denke, dass ich das 
Meiste davon verstanden habe. Nur auf eine Formulierung, die immer 
wieder auftaucht, kann ich mir keinen Reim machen -> Beispiel:
   decf    U1BRGL,f
In der Beschreibung des Assemblerbefehls decf steht:

DECF f {,d {,a}}
Decrement register ‘f’. If ‘d’ is ‘0’, the result is stored in W. If ‘d’ 
is ‘1’, the result is stored back in register ‘f’ (default).

In meinem Beispiel ist U1BRGL = f und f = d. Das heisst, wenn f = 1 ist 
dann wird der decrementierte Wert in das Register U1BRGL zurück 
geschrieben, sonst in WREG. Ich habe aber noch nicht heraus finden 
können, wo das "f" in "decf U1BRGL,f" her kommt und was es bedeutet!?

Wäre toll, wenn ihr mir helfen könntet!

Danke & Gruß
Dittmar

von Jens (Gast)


Lesenswert?

Dittmar L. schrieb:
> Ich habe aber noch nicht heraus finden können, wo das "f" in "decf
> U1BRGL,f" her kommt und was es bedeutet!?

f bezeichnet das jeweilige Register. Also in deinem Fall U1BRGL. Der 
Wert wird aus diesem gelesen, decrementiert und wieder nach f 
geschrieben. Oder wie war deine Frage gemeint?
Wenn du den Wert aus U1BRGL holen und das Ergebnis nach beispielsweise 
U2BRGL speichern willst, musst du den Umweg über das WREG nehmen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Dittmar L. schrieb:
> Ich habe aber noch nicht heraus finden
> können, wo das "f" in "decf U1BRGL,f" her kommt und was es bedeutet!?
Siehe dort im Beitrag "Re: PIC Assembler "MOVF" Befehl"

von Dittmar L. (dittmarlange)


Lesenswert?

Lothar M. schrieb:
> Dittmar L. schrieb:
>> Ich habe aber noch nicht heraus finden
>> können, wo das "f" in "decf U1BRGL,f" her kommt und was es bedeutet!?
> Siehe dort im Beitrag "Re: PIC Assembler "MOVF" Befehl"

Hallo Lothar, das war exakt das, was ich wissen wollte!
Danke!!!

von W.S. (Gast)


Lesenswert?

Dittmar L. schrieb:
> Ich habe aber noch nicht heraus finden
> können, wo das "f" in "decf U1BRGL,f" her kommt und was es bedeutet!?

Also, das ",W" oder das ",F" schreibst du selber dort hin, wo du es 
haben willst. Das zugehörige Bit landet dann im jeweiligen Befehlswort.

Ganz generell gilt die Regel, daß man mit den Maschinenbefehlen auf den 
Inhalt des angesprochenen Registers im RAM zugreift und bei ,W landet 
das Ergebnis im W-Register oder bei ,F landet es wieder in dem 
angesprochenen Register im RAM.

Die PICs sind keine Load-Modify-Store Maschinen, sondern es entfällt das 
Load und das Store und was da übrig bleibt, ist nur noch das Modify. Das 
ist etwas anders, als man es bei manchen anderen Architekturen hat. Für 
kleine µC halte ich das allerdings für ausgesprochen elegant.

W.S.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.