Hallo!
Ich suche gerade nach einer Möglichkeit, Makroargumente zu prüfen.
Ich möchte so etwas nutzen:
1 | set_sleep_mode idle ; Dem AVR das Schlafen beibringen.
|
2 | set_sleep_mode power_down
|
3 | ...
|
Dabei möchte ich dieses Argument mit bestimmten Strings vergleichen,
etwa so:
1 | .macro set_sleep_mode sleep_mode
|
2 | .if \sleep_mode == "idle"
|
3 | ldi r16, 1<<SE
|
4 | .elseif \sleep_mode == "power_down"
|
5 | ...
|
Mit == kann ich anscheinend Zahlen vergleichen, aber keine Strings.
Fehlermeldung:
1 | main.S: Assembler messages:
|
2 | main.S:44: Error: Ungültiger Ausdruck
|
3 | main.S:44: Error: junk at end of line, first unrecognized character is `i'
|
4 | main.S:44: Error: Ungültiger Ausdruck
|
5 | ...
|
Die zweite Zeile kann ich durch folgende ersetzen, und das funktioniert
auch:
1 | .ifc \sleep_mode, "idle"
|
Aber mit .elseif kann ich das nicht machen, .elseifc gibt es nicht.
Daher meine Frage: Wie kann ich Strings vergleichen, ohne .ifc?
Vielen Dank für nützliche Antworten!
Tuxpilot