Liste von Hallo-Welt-Programmen/Assembler
# Liste von Hallo-Welt-Programmen/Assembler

Diese Liste von Hallo-Welt-Programmen von Assemblersprachen enthält kleine Computerprogramme, die auf einfache Weise zeigen, welche Anweisungen für ein vollständiges Programm in einer Programmiersprache benötigt werden.

## Zweck

Aufgaben dieser Hallo-Welt-Programme ist, den Text Hallo Welt! in einem einfachen Programm auszugeben. Weitere Programme sind verfügbar:

* Höhere Programmiersprachen
* Sonstige

## TAS (Telefunken-Assembler-Sprache)

### TAS

* Die Sprache ist weitgehend formatfrei: Informationseinheiten (Befehle und Pseudobefehle) werden durch Kommata oder Kommentare begrenzt.
* Kommentare werden zwischen doppelte Minuszeichen eingeschlossen.
* Ein Kommentar, der mit drei Minuszeichen beginnt, wirkt als Seiten-Überschrift im Assembler-Protokoll.
* Das Betriebssystem benötigt zum Programmstart fünf Angaben: die Start-Adresse, die Alarm-Adresse (Fortsetzung des Programms nach einem Alarm), Anfangswert der Register BXB und BU, Inhalt des freien Arbeitsspeichers.
* Systemdienste werden mit dem SSR-Befehl aufgerufen.
* Konstanten (wie VB616) und Variable (wie INDIZES) werden im Kompilat automatisch getrennt von den Befehlen abgelegt; daher bezeichnet HALLO den XBA-Befehl (den ersten Befehl in der vorliegenden Quelle).

### TASR

* TASR bietet einen Rahmen für TAS-Programme, die im Normalmodus ablaufen, und stellt Makros für häufig benötigte Systemdienste zur Verfügung.
* Die 5 Angaben zum Programmstart entfallen, da sie im Rahmenprogramm enthalten sind.
* Alle in diesem Beispiel benötigten Systemdienste können durch Makro-Aufrufe erledigt werden.

## IBM-Mainframe-ASSEMBLER

Der Programmcode wird in festgelegten Spaltengrenzen erfasst.

* Spalte 1–8 = Namensfeld (Feldbezeichnung oder Sprungziel)
* Stern in Spalte 1 = Kommentarzeile (neuerdings ist es auch möglich, Zeilen komplett leer zu lassen)
* in Spalte 10 beginnend = Befehlscode
* in Spalte 16 beginnend = Operanden, dahinter (nach Leerstelle) optional beliebige Kommentare
* Spalte 72 = Fortsetzung in der nächsten Zeile, wenn hier ein Zeichen ungleich Blank steht (nötig für lange Literale und Makros mit vielen Parametern)
* die Fortsetzung erfolgt ggf. in der nächsten Zeile immer in der Spalte 16
* Spalte 73–80 = Kennung oder lfd. Nummerierung (optional)

Tatsächlich sind die Spaltengrenzen heute etwas flexibler; z. B. gibt es heute Namen mit mehr als 8 Zeichen; dann beginnen die Befehlscodes nicht in Spalte 10, sondern später. Genauso können die Parameter auch nach Spalte 16 beginnen. Die Regeln sind wie folgt:

* Ein Name muss immer in Spalte 1 beginnen, wenn vorhanden
* wenn kein Name vorhanden ist, kommt der Befehlscode frühestens in Spalte 2, ansonsten muss er vom Namensfeld durch mindestens ein Blank abgetrennt sein
* genauso bei den Operanden, sie müssen durch mindestens ein Blank vom Befehlscode abgetrennt sein
* und die Kommentare müssen durch mindestens ein Blank von den Operanden abgetrennt sein
* Blanks in Hochkommas zählen dabei nicht (siehe oben die Blanks im String ' HALLO WELT!' in der mit BUFFER markierten Anweisung)
* wenn ein Befehl keine Operanden braucht, kann man ersatzweise ein einfaches Komma codieren
