[FASM + Linux] Verwirrung bei Sections und Segments
-
Hallo,
ich bin vor kurzem in die Assemblerprogrammierung unter Linux eingestiegen und habe hier zwei Assembler, die mir unterschiedliche Ergebnisse liefern. Leider weiss ich nicht, warum:FASM
Ich habe mir das beiliegende Beispiel elfexe angeschaut, bei dem der Code mitsegment executable executablebegonnen wird. Wenn ich die Binärdatei mit objdump untersuchen will, dann bekomme ich die Meldung, dass keine Sections in der Datei vorhanden seien.
NASM
Das gleiche Beispiel mit NASM assembliert ( Syntax natürlich entsprechend angepasst ), liefert bei objdump das gewünschte Ergebnis mit den Sections .text und .data, die sich auch disassemblieren lassen.
Scheinbar sind Segments und Sections unterschiedliche Dinge. Ich würde mich freuen, wenn mir das jemand erklären könnte.
PS: Allerdings würde ich dennoch lieber den FASM benutzen, da man keinen zusätzlichen Linker benötigt. Wenn man auch "Sections" mit dem FASM erstellen kann, wäre das optimal.
-
Entschuldigung, ich meinte natürlich:
segment readable executable
-
Hallo,
versuch mal hier http://board.flatassembler.net/
Aus reiner Neugier, warum benutzt du fasm und das noch unter Linux? Es gibt ja da einen nativen Assembler GNU as...
-
Danke für deine Anwort, ich habe mal im FASM-Forum nachgefragt.
Aus reiner Neugier, warum benutzt du fasm und das noch unter Linux? Es gibt ja da einen nativen Assembler GNU as...
Naja, mit FASM bin ich schon unter Windows sehr gut klar gekommen und die Syntax gefällt mir auch besser, als bei GAS ( ist glaube ich die AT&T Syntax, die viel komplizierter zu lesen ist ).

-
ist glaube ich die AT&T Syntax, die viel komplizierter zu lesen ist
Ja, im default-Modus in AT&T Syntax, man kann es auch umstellen auf die Intel-Syntax. Warum ist die AT&T Syntax komplizierter zu lesen? Meistens alles von links nach rechts, so wie man es seit der ersten Schulklasse lernt...
-
Ja, mit dem erkennen der Buchstaben habe ich kein Problem. Mich stört vielmehr, dass Source und Destination bei den Befehlen vertauscht ist, dass Register ein %-Präfix haben und so weiter. Ich bin die Intel-Syntax gewohnt. Aber wenn man es umstellen kann, ist ja gut. Werde ich ausprobieren. Dankeschön!
