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!