Grüß euch
Ich hab grad ein Problem mit dem GNU Assembler und der .p2align
Direktive. Aus irgendeinem Grund ignoriert der Assembler die Direktive
innerhalb einer .data Section bei Nutzung innerhalb eines Macros.
Das Macro sieht dabei etwa so aus:
1 | .macro LABEL name
|
2 | .p2align 1
|
3 | name\@\():
|
4 | .word 0
|
Was nun etwas ungewöhnlich ist, ist dass zwischen der Nutzung des Macros
einmal von der .text in die .data Section gewechselt wird weil der
letzte Speicherbereich schreibbar bleiben muss.
1 | .text
|
2 |
|
3 | LABEL a
|
4 | LABEL b
|
5 | LABEL c
|
6 |
|
7 | .data
|
8 |
|
9 | LABEL d
|
10 |
|
11 | .text
|
Schaue ich mir nun die Adresse des letzten Eintrags in der .data Section
an so ist jene ungerade und damit nicht 2^1 aligned. Da an der Stelle
auch Code folgt ist das natürlich etwas... suboptimal.
Hat irgendwer eine Idee woran das liegen könnte?