Struktogramm Generator
Verwendete Sprachen | C++, (Assembler) |
---|---|
Beschreibung | Generiert aus einem vorgegebenem Assembler-Programm ein Struktogramm und fügt Kommentare hinzu. |
Datum | 16.05.05 |
Lizenz | GPLv2 |
Quellcode | struct.zip (23.5 kb) (cpp-Datei, css-Datei, Bilder und Erklärung) |
Ausführbare Datei (Windows) | struct2.zip (23.2 kb) (exe-Datei, css-Datei und Bilder) |
Während meines Studiums habe ich auch an einem Mikrocontroller-Praktikum teilgenommen. Dort programmierten wir einen Mikrocontroller des Typs 80535 mit Assembler der 8051-Familie. Dadurch, dass wir zu jedem Programm ein Struktogramm zeichnen sollten, machte ich mir die Aufgabe eine Art Assembler-Interpreter zu schreiben, der aus einen vorgegeben ASM-Programm das Struktogramm in HTML generiert. Hierbei sind natürlich nicht alle Befehle der 8051-Familie zur Verwendung gekommen, so dass der Interpreter nicht vollständig ist.
Zur Generierung benötigt man ein Assembler-File als Text-Datei (Beispiel für Assembler-Code). Das Exe-File muss dann einfach in der Kommandozeile mit Übergabe der Datei gestartet werden, d.h. also zum Beispiel mit struc.exe v.txt
, falls die v.txt im gleichen Verzeichnis wie das Exe-File liegt.
Nach der Generierung erhält man ein HTML-File, was man einfach öffnen und ausdrucken kann. Wichtig ist, dass die Bilder und die CSS-Datei aus den Zip-Files im gleichen Verzeichnis mitsamt Unterordner lagern wie das HTML-File. Die Bilder geben dabei den Unterschied zwischen Befehl, Abfrage oder Sprungmarke an und dienen auch für die Verzweigung von Sprungbefehlen.
Das aus der oben erwähnten v.txt würde folgenden Code ergeben: Struktogramm.
Damit alles korrekt interpretiert wird, sollten folgenden Regeln bei der Erstellung des ASM-Files beachtet werden:
- Grundsätzlich nur lauffähige Assembler-Programme als Eingabe verwenden!
- Kommentare werden mit Semikolon hinter den zu kommentierenden Befehl aufgeführt
- Steht ein Kommentar am Anfang der Zeile, wird er ignoriert
- ausgenommen davon sind Kommentare am Anfang der Datei, die ergänzend in das HTML-File übernommen werden
- hinter Sprungmarken sollte nicht direkt ein Befehl folgen
Bei Fragen, Fehlern und Anregungen einfach an mich wenden!