Frage zu FASM und Segmenten bei einer .com Datei
-
Hi,
momentan versuche ich mit FASM eine Programm im com Format zu schreiben,
aber ich bekomme es nicht ganz hin.
Welche Sgemente kann es alles geben und wie erstellt man welche?
Ich habe gesucht aber nur haufenweise Beispiele für Exe Dateien für den FASM gefunden.momentan weiß ich, dass ich
format binary ; com Datei use32 ; 32 Bit Register
schreiben muss, aber weiter weiß ich nicht.
In der umfagreichen manual steht auch nichts dazu.mfg
-
Ich kenne den FASM nicht naeher...
Eine .com-Datei hat nur ein einziges Segment, in dem alles liegt. Weiter startet der Code immer bei offset 100h dieses Segments - davor packt DOS sein PSP.
=>Vor deinen Code/Daten gehoert etwas wie org 0x100 bei NASM oder TASM.
Zudem ist eine .com-Datei immer 16Bit. Ich kann mir nicht vorstellen, dass das "use32" daher hilfreich ist.
-
Wenn du kein Format angibst, erzeugt FASM automatosch binäre Dateien ohne Format. Durch einen Aufruf wie
fasm datei.asm datei.com
erzeugtst du eine COM Datei.
-
Ahh, vielen Dank.
Jetzt habe ich eine neue Frage.
Wenn ich mit FASM eine Exe Datei erzeuge, kann
ich ja ( sofern includiert ) alle WinApi Funktionen benutzen.
Bei Dos gab es ein Interrrupt mit dem man Speicher dynamischer allozieiren konnte, gibt es soetwas auch in der WinApi, oder muss ich dazu noch
mehr einfügen?
-
Was meinst du? Natuerlich bietet die WinAPI auch Funktionen zur Speicherverwaltung. Das Meiste doppelt und dreifach...