alignment nasm



  • Hallo, ich habe eine Frage zur Ausrichtung der Daten in nasm (unter Linux):

    Die Daten sollten an DWORD-Grenzen ausgerichtet werden.

    section .data
    align 4     
    var1 db   ; hier folgen jetzt 12 Werte, wäre die Variable in der nächsten Zeile nicht mehr ausgerichtet?
    var2 dw
    

    Ich verstehe leider den Absatz in dem NASMDOC.PDF nicht ganz. Muss ich selbst dafür sorgen, dass jede einzelne Variable korrekt an 32-Bit-Grenzen ausgerichtet ist, oder wird mit der ersten Anweisung quasi das ganze Datensegment automatisch ausgerichtet?

    Vielen Dank für Antworten



  • align sorgt dafuer, dass was auch immer als naechstes folgt, korrekt ausgerichtet ist. Also z.B. die naechste Variable. Alles, was wiederum darauf folgt, wird nicht unmittelbar durch align beeinflusst.

    In deinem Beispiel waere also var1 nach dword ausgerichtet, var2 waere an Adresse var1 + 1, also nicht ausgerichtet.



  • Danke, das hilft mir weiter.


Anmelden zum Antworten