MIXAL – Wikipedia

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

[Bearbeiten | Quelltext bearbeiten]
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

[Bearbeiten | Quelltext bearbeiten]
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" 

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

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

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

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

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