MIXAL

MIXAL ist die Assemblersprache des fiktiven MIX-Computers.

Der MIX-Computer ist ein hypothetischer Computer aus Donald E. Knuths The Art of Computer Programming, welcher mittels MIXAL programmiert werden kann. Eine Emulation dieses Computers ist bei den Weblinks unter Dan's MIX Simulator and MIXAL Compiler zu finden.

Beispielprogramme

hello world

TERM    EQU    19          console device no. (19 = typewriter)
        ORIG   1000        start address
START   OUT    MSG(TERM)   output data at address MSG
        HLT                halt execution
MSG     ALF    "HELLO"
        ALF    " WORL"
        ALF    "D    "
        END    START       end of program

Bildung der Fakultätsfunktion

Eingabe   CON 10            Variable "Eingabe" wird auf "10" gesetzt
Zaehler   CON 0             Variable "Zaehler" wird auf "0" gesetzt
Produkt   CON 1             Variable "Produkt" wird auf "1" gesetzt
Start                       Start des Programms (Label für den nächsten Befehl)
	  LDA Eingabe       "Load A-Register" Lädt den Inhalt der Variablen in das A-Register
	  STA Zaehler       "Store A-Register" Speichert Inhalt des A-Registers in Variable "Zaehler"
Schleife  LDA Produkt       "Load A-Register" Lädt den Inhalt der Variablen "Produkt" in das A-Register
	  MUL Zaehler       Multipliziert A-Registerinhalt mit Variable "Zaehler". Ergebnis wird in A- und X-Register geschrieben
	  STX Produkt       "Store X-Register" Speichert Inhalt des X-Registers in Variable "Produkt"
	  LDA Zaehler       "Load A-Register" Lädt den Inhalt der Variable "Zaehler" in das A-Register
          DECA 1            "Decrement at 1" Inhalt des A-Registers wird um 1 verringert
	  STA Zaehler       "Store A-Register" Speichert Inhalt des A-Registers in Variable "Zaehler"
	  JAP Schleife      "Jump if A Positive" Wenn A>0, springe zurück nach "Schleife"
	  HLT               "Halt"
	  END Start         Ende des Programmes, welches bei Start beginnt. Das Resultat steht in Variable "Produkt"

Beschreibung

Für das Verständnis dieser Beschreibung ist Praxis im Umgang mit Assemblersprache hilfreich.

Flags

Der MIX-Computer hat einige Prozessor-Flags, die dazu eingesetzt werden, den Programmablauf zu steuern.

E-Flag

Gesetzt, wenn der Inhalt des A-Registers dem Inhalt der Adresse beim Befehl CMPA (CMPA wird stets zuvor ausgeführt) gleicht.

L-Flag

Gesetzt, wenn der Inhalt des A-Registers kleiner ist als der Inhalt der Adresse beim Befehl CMPA (CMPA wird stets zuvor ausgeführt).

G-Flag

Gesetzt, wenn der Inhalt des A-Registers größer ist als der Inhalt der Adresse beim Befehl CMPA (CMPA wird stets zuvor ausgeführt).

Weblinks