Forum: Mikrocontroller und Digitale Elektronik .macro


von Robert (Gast)


Lesenswert?

Kann man im AVR Assembler2 ein macro mit einem Label generieren?

z.B. so etwas:

.macro  TIMER07
        ...
        BRNE    TI_@0_@1
        SET                     ; set ZC Flag
        BLD     @0,@1
TI_@0_@1:
        SBIW    YH:YL,2         ; write back data to memory

.endmacro

Zweck der Übung ist eine Art local Label zu generieren ohne die offsets
von Hand einzutragen...

Entweder gehts' nicht oder ich finds nicht.

von Irgwer (Gast)


Lesenswert?

Hallo Robert,

geht viel einfacher. Der Assembler macht eh aus allen Labels in einem
Macro lokale Labels. Hört sich komisch an, ist aber so.
Probiers einfach aus.
Wie es funktioniert wird dir klar, wenn du dir nach dem Assemblieren
die Datei *.map ansiehst und dein Label darin suchst.

von Robert (Gast)


Lesenswert?

Danke.

Das kommt davon wenn man sonst nur mit 'quasi dummen' assemblern zu
tun hatte, wo man speziell .local schreiben muss...

Aber wenn es dann automatisch lokal ist, wie krieg ich dann im
Bedarfsfall ein jmp zu einem globalen Ziel odre umgekehrt?

von Irgwer (Gast)


Lesenswert?

Also ein Sprung aus dem Macro zu einem globalen Label ist kein Problem.
Andersrum (von aussen ins Macro) ist nicht möglich.

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.