Forum: Mikrocontroller und Digitale Elektronik MPLAB Assembler Label Namen


von Michael (Gast)


Lesenswert?

Hallo,
ich bin gerade dabei eine etwas größeres Projekt mit dem PIC16F887 zu 
verwirklichen.
Ich mache mir gerade aber Gedanken darüber, wie ich den Assembler Code 
möglichst übersichtlich und sauber halte.
Ein Problem dabei was ich habe sind die Label Namen.
Ich kann jedes ja nur einmal verwenden und irgendwann gehen einem die 
kurzen Namen aus.
Insbesondere wenn ich nur in einer Routine temporäre Labels brauche.
Gibt es da eine Möglichkeit "lokale" Labels zu definieren, die nur in 
der definierten Routine gültig sind und ich diese so auch in anderen 
Routinen nochmal verwenden kann ?

von Frank K. (fchk)


Lesenswert?

C kannst Du nicht verwenden?

Den XC8 kannst Du Dir so herunterladen.

von Michael (Gast)


Lesenswert?

Ja, es kommt aber an manchen stellen bei mir fasst auf jeden Takt an und 
der Free xc8 ist in Sachen Optimierung überhaupt nicht gut.
Ich habe halt keine Kontrolle mehr wievielt Takte jetzt ein bestimmter 
Befehl braucht.

von Thomas E. (picalic)


Lesenswert?

Servus,

lokale Programm-Labels sind mir bei MPASM (außer ggf. in Makros) nicht 
bekannt.

Zur Übersichtlichkeit trägt aber auch bei, möglichst aussagekräftige 
Namen zu verwenden, und die tendieren naturgemäß dazu, nicht mehr ganz 
so kurz zu sein.
Klar, daß so simple Namen wie "loop", die oft als lokale Labels nützlich 
wären, schnell "verbaucht" sind. Solche "lokalen" Labels könnte man z.B. 
durch Benutzung einer an die Hauptfunktion angelehnten Bezeichnung mit 
einer Erweiterung erstellen. Im einfachsten Fall ist das ein simpler 
Index (..._1, ..._2) , oder auch etwas sinnvolleres (..._lp1, ..._next)
Da die "lokalen" Labels ja nur im unmittelbaren Umfeld interessant sind, 
dürfen die auch etwas kryptischer ausfallen.

z.B.:
ProgrammMachtDas
   <code>
pmd_lp
   <code>
pmd_next
   <code>
pmd_exit
   return

"Ausgegangen" sind mir die Zeichenkombinationen jedenfalls noch nie...

von GroberKlotz (Gast)


Lesenswert?

Ich kann Thomas nur zustimmen!
Labels verbrauchen keinen Speicherplatz und brauchen daher nicht 
besonders kurz oder kryptisch zu sein.

LED2_ON  steht z.B. für bsf PORTB,RB0
DCF_Stunde ist verständlicher als DCF_hh
LED2_OFF ist beser zu lesen als led2off oder LedOff

mfg GroberKlotz

von Marcus H. (Firma: www.harerod.de) (lungfish) Benutzerseite


Lesenswert?

Zum Einstieg: MPASM Guide 33014L
Labels:       can be 32 characters long
Directive:    "global" - bei relokierbarem Code genau das Gegenteil von 
local.

Cheerio,
 marcus

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.