MIXAL ist die Assemblersprache des MIX-Computers.
Der MIX-Computer ist ein hypothetischer Computer aus Donald Knuth's The Art of Computer Programming, welcher mittels MIXAL programmiert werden kann. Eine Emulation dieses Computers ist unter Dan's MIX Simulator and MIXAL Compile zu finden.
Inhaltsverzeichnis |
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
Null CON 1 Variable Null wird auf "1" gesetzt
Eingabe CON 10 Variable Eingabe wird auf "10" gesetzt
Zaehler CON 0 Variable Zaehler wird auf "0" gesetzt
Summe CON 1 Variable Summe 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 Variable in das A-Register
STA Zaehler "Store A-Register" Speichert Inhalt des A-Registers in Variable "Zaehler"
Schleife LDA Summe "Load A-Register" Lädt den Inhalt der Variable "Summe" in das A-Register
MUL Zaehler Multipliziert A-Registerinhalt mit Variable "Zaehler". Ergebnis wird in A-Register geschrieben
STX Summe "Store X-Register" Speichert Inhalt des X-Registers in Variable "Summe"
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 eins verringert
STA Zaehler "Store A-Register" Speichert Inhalt des A-Registers in Variable "Zaehler"
CMPA Null "Vergleiche A-Register mit Null Flags werden geschrieben (siehe Flags)
JNE Schleife "Jump on not equal" Wenn E-Flag nicht gesetzt ist springe nach "Schleife"
HLT "Halt"
END Start Ende des Programmes, welches bei Start beginnt.
Für das Verständnis dieser Beschreibung ist der grundlegende Umgang mit Assembler erforderlich.
Der MIX-Computer hat einige Prozessorflags, 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).