Bootloader mpasm - was bedeutet ,f in "decf U1BRGL,f"

OP #6902186
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
Gast #6902203
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.
Gast #6902642
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren