Assembler / Linker selber schreiben



  • Moin!

    Zur Zeit programmiere ich Programme auf dem ATmega32 (Assembler Code) (an einer Hochschule).

    Nun wollte ich gern einige Erfahrungen "auf dem Computer" sammeln (Prozessoren von Intel / AMD).

    Vorweg wollte ich gern die Arbeitsweise von einem Assembler und des Linker wissen.

    Assembler: Dieser übersetzt den Quellcode in eine Objekt Datei bzw. berechnet die Adressen etc (siehe Opcode bzw Dokumentation von den Prozessor Hersteller).

    Linker: "Erzeugt" aus der Objekt Datei (Beispiel bei Windows) daraus eine ausführbare Datei (exe).

    Nun zur Frage: Wie ist die Objekt- bzw exe- Datei aufgebaut?

    Die einzelnen Befehle, Adressen, ... müssen nach meinem Verständnis als Informationen (0, 1) gespeichert sein / "umgewandelt" werden.

    Danke



  • Für Windows findest du den Aufbau einer EXE unter dem Namen Portable Executable (PE), für z.B. Linux dagegen als Executable and Linking Format (ELF).

    Der interne Aufbau von PE- und Objektdateien findet sich unter Common Object File Format (COFF).

    Edit: Gibt auch einen Wiki-Eintrag dafür: Common Object File Format



  • Könnte eventuell auch interessant sein: http://www.iecc.com/linker/ , ist aber schwere Kost (naja, je nach Hintergrund des Lesers).



  • müssen nach meinem Verständnis als Informationen (0, 1) gespeichert sein / "umgewandelt" werden.

    hört sich echt komisch an

    Informationen(0,1) => meinst du Binär?
    gespeichert => du meinst RAM,ROM,Festplatte etc.
    "umgewandelt" => aus Assemblerquelltext als Basis?

    aber ja du hast recht


Anmelden zum Antworten