.gitignore | ||
design.txt | ||
LICENSE | ||
main.c | ||
Makefile | ||
README.md | ||
TODO.txt |
Assembler
CLI Anwendung geschrieben in C
Der Assembler wandelt das geschriebene Assembly in ein Abbild des Speichers für den EIPA Prozessor um. Dieses Speicherimage enthält dann die Instructions in einer für den EIPA Prozessor lesbareren Form.
Er ist im Grunde aus Bausteinen aufgebaut:
1. Lexer
Der Lexer nimmt die die Datei mit geschriebenem Assembly, und wandelt sie in die einzelnen Bestandteile um. Er beachtet auch wenn z.B. zwischen den Teilen der Anweisung mehrere Leerzeichen gesetzt sind, damit die anderen Teile des Assemblers damit keine Hindernisse haben. Er wandelt z.b. die Zeile INP 31 ; Irgendein Kommentar In die teile |INP|, |31|, |Ende der Instruction| um.
2. Fehleranalyser
Der Fehleranalyser nimmt die Tokens aus dem Lexer, und prüft z.B. ob die Adresse einer Instruction zu groß ist, ob bei einem Befehl der eine Adresse braucht eine gegeben ist, ob tippfehler vorhanden sind, usw. Wenn er einen Fehler findet bricht er das Programm ab.
3. Target code generator
Der Target code generater wandelt die Tokens aus dem Lexer, nachdem sie auf Fehler überprüft wurden, in den für den EIPA Prozessor lesbaren Maschienen Code um.
4. Image saver
Der Image saver speichert den generierten Maschienencode in ein EIPA speicherimage ab, das danach von dem Prozessor in den Speicher geladen werden kann, und somit dann ausgeführt werden kann.
Das Design des Erwarteten Assembly codes ist in design.txt
beschrieben