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...


Anmelden zum Antworten