Forum: Compiler & IDEs macro in avrgcc assembler


von Sam .. (sam1994)


Lesenswert?

Hallo

Das macro
1
.MACRO outx
2
   .if @0 <0x40
3
    out @0, @1
4
  .else
5
    sts @0, @1
6
  .endif
7
.ENDM

gibt im Avrstudio folgende Fehlermeldung aus:
1
Error: too many positional arguments

Ich habe schon alle anderen Möglichkeiten probiert es anders 
darzustellen (mit Parameter, mit % oder @...).

Leider will nichts funktionieren.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Hast du's auch mit dem Lesen der gas-Doku probiert?

Erstens muss man den Parameter deklarieren, und wenn ich nicht gerade
total daneben liege, werden Parameterersetzungen im gas mit einem
Backslash eingeleitet.  Die Details müsste ich aber auch nachlesen.

von Stefan E. (sternst)


Lesenswert?

Jörg Wunsch schrieb:
> und wenn ich nicht gerade
> total daneben liege, werden Parameterersetzungen im gas mit einem
> Backslash eingeleitet.  Die Details müsste ich aber auch nachlesen.

Ja, Blackslash ist richtig.

Für Samuel:
http://sourceware.org/binutils/docs/as/Macro.html#Macro

von Sam .. (sam1994)


Lesenswert?

Danke. Ich wusste nicht wo ich suchen sollte.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

...zudem willst du den SFR-Offset berücksichtigen, d.h. die Differenz 
zwischen I/O- und RAM-Adresse.

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.