Wie com-Datei starten?



  • Wie kann man unter Assembler eine com Datei starten?

    [edit]Auch hier: Aussagekraeftigen Titel bitte. "com" kann alles moegliche heissen...[/edit]



  • Hi.

    Kommt darauf an, fuer welches OS du programmierst.



  • Ich progge gerade für einen eigenen Kernel.



  • Na dann:
    .com Datei in Speicher einlesen und Instructionpointer aufs erste Byte setzen.



  • Ich progge gerade für einen eigenen Kernel.

    aufgrund dieser Fragestellung:

    Wie kann man unter Assembler eine com Datei starten?

    möchte ich das sehr anzweifeln.
    Aber nicht desto trotz:

    The COM files are raw binary executables and are a leftover from the old CP/M
    machines with 64K RAM. A COM program can only have a size of less than one
    segment (64K), including code and static data since no fixups for segment
    relocation or anything else is included. One method to check for a COM file is
    to check if the first byte in the file could be a valid jump or call opcode, but
    this is a very weak test since a COM file is not required to start with a jump
    or a call. In principle, a COM file is just loaded at offset 100h in the segment
    and then executed.

    http://www.wotsit.org/search.asp?s=binary
    wenn man sich die COM Dateien anschaut dann merkt man auch reltiv schnell das die COM keinen Header hat 🙄 ... hm, also wie führt man so was aus, was in den 100h Offset geladen werden muss? Vielleicht in dem man die COM tatsächlich dahinlädt und dann von seinem "loader" dahin springt? Das hängt aber wirklich von der implementierung der "Loader" Funktion deines OS ab.


Anmelden zum Antworten