GCC Asm: Lokale Labels in Makros

Gast #179580
Lesenswert?
• ▲
▼
Hallo Programmierer,

wieder einmal knoble ich an einer Situation mit dem Assembler des GCC.
Wie kann ich einen Makro mit lokalen Label definieren?

z.B.

.macro Test
     jmp Silly
Silly:
.endm

und dann z.B. dreimal der Aufruf:

     Test
     Test
     Test

der aufgelöst werden sollte in sowas (ungefähr)

     jmp Silly1
Silly1:
     jmp Silly2
Silly2:
     jmp Silly3
Silly3:


Ich arbeite mit dem MSP430.

Grüße und Danke im Voraus

Christian
Gast #179582
Lesenswert?
• ▲
▼
Ja, die Stelle habe ich auch schon durchgearbeitet. Leider hat der gas
die Locals nicht aufgelöst... Habs mit $ und als erstes in
Standard-Schreibweise auspropiert, also wie oben in meinem Beispiel.
Das interessiert den Assembler alles nicht. Nur die Nummern Labels habe
ich nicht ausprobiert. Da gebe ich dem Makro lieber einen Index mit, der
dann in die Labels eingebaut wird.
Gast #179583
Lesenswert?
• ▲
▼
jmp 1f
1:  jmp 1f
1:  jmp 1f
1:

Mehr braucht's nicht.  Numerische lokale Labels sind grenzenlos
,,recyclebar''.  Das angehängte f oder b steht für vorwärts oder
rückwärts, der jeweils nächstliegende Label in der entsprechenden
Richtung mit passender Nummer wird genommen.

Habe ich aber auch alles in der avr-libc-Doku aufgeschrieben...
Gast #179584
Lesenswert?
• ▲
▼
kann sein dass er die avr-libc dokumentation nicht gelesen hat, wenn er
mit dem msp430 arbeitet...

@Christian
also dann aber doch lieber numerische labels, als bei jedem makroaufruf
noch manuell einen index mitgeben zu müssen :D

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.