Versionskennzeichnung mit AVR Studio Assembler 2

OP #713669
Lesenswert?
• ▲
▼
Hallo zusammen,

ich habe einen Assemblercode, den ich mit verschiedenen Optionen 
assemblieren kann. Diese stecken in Defines, im Beispiel:
#define Version "12.34 "
.set  Schalter1 = 'e'
.set Schalter2 = 'x'

Nun möchte ich einen Startup-Prompt haben, der diese Optionen anzeigt.
Wenn beide Schalter gesetzt sind ist das ja kein Problem:

PromptMessage: .db "SoftwareXY ",Version,Schalter1, Schalter2," (c)"

Habe ich aber nun einen Schalter nicht aktiv, stolpert der Assembler 
über den fehlenden Wert.
Hat einer eine Idee wie man das behebt ?

Danke und Gruß
Uli
OP #713747
Lesenswert?
• ▲
▼
...ich will ja nicht undankbar sein, aber mit verschiedenen Zeilen und 
#if's kann ich es auch....
Aber wenn das nicht zwei sondern fünf Schalter mit beliebigen 
Kombinationen sind, wird's ein bisserl länglich.

Ich suche also eine Möglichkeit, im Präprozessor einzelne Character zu 
einem String zusammenzubauen.

Gruß
Uli
OP #714875
Lesenswert?
• ▲
▼
Hallo Peter,

vielen Dank, das hat mich ein bisserl weiter gebracht.

Aber gleich darauf folgte das zweite Problem:

Wenn ich die Optionen als Strings definiere, kann ich sie nicht mehr mit 
#if-Statements  für die bedingte Assemblierung nutzen.

Mit Assemblerdirektiven würde das gehen, da dort auch ein Typ Char 
erlaubt ist:
.set Schalter = 'A'
.if Schalter == 'A'
  ----code----
.endif

Nun kann ich nicht in eine Schachtel mit  Assemblerdirektiven etwas für 
den Präprozessor packen, da dieser immer zuerst läuft und somit die 
#defines unabhängig von den Bedingungen der Assembler-Direktiven alle 
sequenziell abgearbeitet werden.

Ich helfe mir im Moment mit einem numerischen Schalter im Präprozessor, 
aber so richtig elegant ist das irgendwie nicht.

Gruß
Uli

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