Die HAM (Hypothetische Akku-Maschine) ist eine minimalistische Prozessor-Architektur nach von Neumann. Sie dient in erster Linie zur Veranschaulichung von einfachen Mikroprozessoren mit einem minimalen Befehlssatz. Nutzen kann man das Toolkit für die berufliche Bildung in der Elektrotechnik oder Informatik.

Die Bestandteile sind:

  1. HAMEditor: Einfacher Source-Level-Editor für die Programmentwicklung. Damit lassen sich die Assemblerprogramme schreiben, kompilieren, linken und simulieren.
  2. HASM: Der einfache Assembler. Das Programm assembliert das geschriebene Programm und wandelt es in eines von drei Formate um. Die drei Formate sind Xilinx-BRAM, RTEasy und HAMSim.
  3. HAMSim: Der einfache HAM-Simulator (obige Abbildung). Mit dem Programm können assemblierte Programme in einer HAM-Simulationsumgebung ausprobiert werden.

Alle Programme sind im Prinzip selbsterklärend, das Assembler-Format wird in einer gesonderten Dokumentation beschrieben.

Das Toolkit kann hier heruntergeladen werden. Die Software ist betriebssystem-unabhängig. Sie benötigen dafür JRE oder JDK in der Version 1.7.x oder höher.

Ein Beispiel-Programm (Subroutine) können Sie hier einsehen.

HAM-Aufgaben in Assembler

#ZweckAufgaben
1aAddition mit Carry-FlagAddition mit Carry
1bSubtraktion durch
2er-Komplement
Subtraktion
2Multiplikation durch ShiftMultiplikation Shift
3Multiplikation durch Schleife,
INBUS, OUTBUS
Multiplikation Loop
4Bits prüfen durch PrüfmaskenBits maskieren
5OR-GatterOR-Gatter
6XOR-Gatter, VerschlüsselungXOR-Gatter
7Aufruf von Subroutinen, Stack-ZugriffeSubroutinen
8Event-Polling, externe EreignisseEvent-Polling
9Modulo-Rechnung, Division mit RestModulo-Rechnung
10Zeichenketten, StringsHello-World
11Länge einer ZeichenketteLänge eines Strings
12Suchen in ZeichenkettenZeichen in String suchen
13Zeichenketten kopierenStrings kopieren
14Buffer OverflowBuffer Overflow