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

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