Hat leider doch nicht geholfen.
Der Unterschied zw. pm_lo8 und lo8 ist lediglich, dass pm_xxx das
Argument >>1 angibt, was aber - so mein Eindruck - beim GCC höchstens
gebraucht werden könnte, wenn ich als Argument die Adresse eines
Objektes zum Anspringen verwenden möchte (weil nur dann "halbe"
Adressen verwendet werden). Insofern ist die Verwendung von lo8 (ohne
pm) durchaus richtig.
Die Frage war viel eher ja nach einer Negationsmöglichkeit.
Ich habe es mittlerweile selbst hingekriegt durch die Benutzung eines
Labels an Adresse 0.
1 | .text
|
2 | .org 0
|
3 | Beginn:
|
4 | [r]jmp Main
|
5 |
|
6 | ...
|
7 |
|
8 | Main:
|
9 | subi XL, lo8 (Beginn-TabellenAdresse)
|
10 | sbci XH, hi8 (Beginn-TabellenAdresse)
|
11 |
|
12 | ...
|
13 |
|
14 | TabellenAdresse:
|
15 | .byte ..
|
Da der GCC nun sowohl Minuend als auch Subtrahend im Segment .text
"sieht", führt er die Operation fehlerfrei aus.
Somit geht es.
Vielleicht stolpert ja nochmal jemand über dieses Problem.
VG
Volker