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