Assemblierer programmieren
lima-city → Forum → Programmiersprachen → Sonstige Programmiersprachen
assembler
aufgabe
befehl
datei
elf
format
frage
http
info
kleinen projekt
moderne assembler
paar
programm
programmieren
projekt
prozessor
student
tabelle
uni
verwenden
-
Hallo Leutz,
Meine Aufgabe in einem kleinen Projekt ist es einen Assemblierer in Java oder C oder C++ zu schreiben der eine symbolisches Maschinenspracheprogramm in ihre binaere Repraesentation uebersetzt. Kann mir einer von euch ein paar gute Tutorials (oder auch Bücher) nennen in denen beschrieben wird wie man einen Assemblierer programmieren kann oder zu mindest wie ein Assemblierer aufgebaut ist? Leider finde ich nur etwas zum in Assembler programmieren, was aber nicht mein Ziel ist. Bin schon total verzweifelt ... wäre schön wenn mir einer von euch weiter helfen könnte.
LG
Artax -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Meine Aufgabe in einem kleinen Projekt ist es einen Assemblierer [...] zu schreiben
Auf welchem Niveau? Schule? Uni?
Ich habe selber so etwas noch nie gemacht, aber nach meinem Verständnis ist es theoretisch nicht schwer, da du \"nur\" für jeden eingelesen Befehl den passenden Maschinencode raussuchen musst.
Ein Assembler ist eigentlich nur ein Programm, dass in einer Tabelle nachschaut, welcher Assemblerbefehl welchen Maschinencode entspricht. Dabei müssen dann natürlich noch die Parameter zu einigen Befehlen berücksichtig werden.
Die meisten Assemblersprachen verwenden keine verschachtelten Befehle, so dass es relativ leicht ist, einen Parser dafür zu schreiben.
Moderne Assembler können zusätzlich noch Macros expandieren. Müsst ihr das auch machen?
Um was für eine \"symbolische Maschinensprache\" handelt es sich denn? -
Danke für deine schnelle Antwort.
Das Ganze ist für die Uni. Ich bin gerade erst dabei mich in das Thema Assemblierer einzuarbeiten und
bin für alle Infos die dazu bekomme dankbar.
Moderne Assembler können zusätzlich noch Macros expandieren. Müsst ihr das auch machen?
Das ist eine von den Fragen die ich bei der nächsten \"Besprechung\" stellen möchte, aber ich denke schon das der Assembler das können sollte.
Um was für eine \\\'symbolische Maschinensprache\\\' handelt es sich denn?
Ich nehme an um eine mehr oder weniger selbstdefinierte Assemblersprache.
-
Das Ganze ist für die Uni. Ich bin gerade erst dabei mich in das Thema Assemblierer einzuarbeiten und
bin für alle Infos die dazu bekomme dankbar.
Programmieren in Assembler ist ein weites Feld. Wie viel Zeit habt ihr denn?
Falls du dir wirklich Literatur anschaffen willst, dann empfehle ich dir
http://www.amazon.com/Assembly-Language-Step-step-Programming/dp/0471375233/ref=sr_1_1?ie=UTF8&s=books&qid=1214844440&sr=1-1
(Assembly Language Step by Step von Jeff Duntemann)
Um einen Assembler zu programmieren, brauchst du eine Übersetzungstabelle(auf Papier), wo alle Befehle der verwendeten Assemblersprache drauf stehen, und wo du sehen kannst, welcher Befehl welchen Maschinencode hat.
Um dir weiterzuhelfen, wäre es nützlich, wenn du die entsprechende Tabelle verlinkst.
Und dann noch ein paar Dinge die Interessant wären:
Für welchen CPU soll das ganze sein?
Für welches Betriebssytem?
In welchem Executable-Format sollen die assemblierten Programme dann vorliegen? ( .COM, .exe, ELF, Mach-O) -
Hallo,
wenn du einen Assembler für 8051er - Mikro-Prozessoren schreiben willst, kann ich dir nur folgendes Buch empfehlen:
http://www.amazon.de/Elektronik-5-Mikroprozessortechnik-Helmut-M%C3%BCller/dp/383433023X
Im Anhang befindet sich für diese Sorte von Prozessoren mehrere Tabellen mit den übersetzten Nullen und Einsen.
Tabellen für andere Prozessoren befinden sich meist in den Datenblättern auf den Herstellerseiten. Mal eine Frage: Wie viel Zeit habt ihr für das Projekt?
MfG Sebastian -
Hallo,
so ich hab mich jetzt mal bemüht auf alle Fragen eine Antwort zu finden:
Mal eine Frage: Wie viel Zeit habt ihr für das Projekt?
Für den Bau des Assemblierers hab ich ca 4 Monate Zeit.
Und dann noch ein paar Dinge die Interessant wären:
Für welchen CPU soll das ganze sein?
Die CPU wurde für das Betriebssystem entwickelt, ist also selbst definiert (von anderen Studenten)
Für welches Betriebssytem?
Es handelt sich um ein selbst entwickeltes Betriebssystem zu Lernzwecken (für Studenten usw) Minix ähnlich, jedoch mit noch weniger Funktionen.
In welchem Executable-Format sollen die assemblierten Programme dann vorliegen? ( .COM, .exe, ELF, Mach-O)
Das Ganze soll später in einer .img-Datei ausgegeben werden. Der Kern des Systems wird eine C-Datei sein die dann in eine große img-Datei kompiliert werden soll.
Um was für eine \"symbolische Maschinensprache\" handelt es sich denn?
Die Sprache wurde auch selbst definiert.
Wie ihr seht, bräuchte ich etwas in dem die Funktionsweise eines Assemblierers beschrieben ist um mich daran orienieren zu können.
LG
Artax
Beitrag geändert: 6.7.2008 20:23:17 von artax -
hi,
also um einen assembler zu schreiben würde ich mit einem Compilerbau/Übersetzerbaubuch oder einem
Vorlesungsskript darüber anfangen. Da sind die Themen lexikalische und syntaktische Analyse(die Quellsprache einlesen) und später die Codeerzeugung genau das Gesuchte. Die Anfangskapitel in den Compilerbaubbüchern die ich kenne waren immer so das man danach wissen kann wie der grobe Weg aussieht und später wird das dann haarklein ausgefeilt :o)
ein spannendes Feld ! Viel Erfolg, wenns noch mehr Fragen dazu gibt immer her damit :)
grüße,mp
Beitrag geändert: 22.9.2008 20:00:09 von max-power -
http://www.flipcode.com/archives/Pure_Run-Time_Assembler.shtml
Das ist zwar nicht ganz das, was du suchst, aber du kannst es auf jeden fall verwenden, um einen nicht-run-time-assembler zu machen. Das prinzip dürfte das gleiche sein. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage