Der Little Man Computer (LMC) ist ein sehr einfaches Mikroprozessor- und Computersystem, das dazu entwickelt wurde, Anfängern die Montageprogrammierung beizubringen. Der Einfachheit halber wird er nicht als binärer, sondern als dezimaler Computer dargestellt. Es enthält 100 Speicherzellen, nummeriert von 0-99. Hier können Sie Programmanweisungen und Daten hinterlegen.
Jede Zelle kann eine dreistellige Dezimalzahl enthalten. Hier können wir Anweisungen speichern, die der Computer ausführen soll, oder Daten, mit denen er arbeiten soll. Die CPU verfügt über einen einzigen Akkumulator, der zum Ausführen von Arithmetik verwendet wird. Es gibt auch einen Ein- und Ausgang, an dem Sie Benutzereingaben lesen und Ausgaben an den Benutzer schreiben können.
Hier ist eine einfache Übersicht über die Anleitung. Jede Anweisung ist eigentlich nur eine dreistellige Zahl. Meist handelt es sich beim Programmieren aber um Buchstabenabkürzungen, die man sich leichter merken kann. Hier ist ein Tipp, wie Sie die Beschreibung unten lesen können. Beispielsweise wird die Add
-Anweisung mit der Nummer 1xx
beschrieben. Was das wirklich bedeutet, ist, dass Sie in xx
Ihren Operanden (Argument) eingeben. 142
ist also die Anweisung zum Addieren des Inhalts der Speicherzelle 42 zum Inhalt des Akkumulators.
ADD
1xx fügt Inhalt an Adresse xx
im Speicher zum Akkumulator hinzu.SUB
2xx subtrahiert den Inhalt der Adresse xx
von dem, was im Akkumulator gespeichert ist. Ergebnis im Akku speichern.STA
3xx speichert den Akku an der Adresse xx
im Speicher.LDA
5xx lädt Akku mit Inhalt an Adresse xx
in den Speicher.BRA
6xx springt zur Stelle xx
im Programm.BRZ
7xx springt, wenn Akku Null istBRP
8xx springt, wenn der Akku Null oder höher (positiv) ist.INP
901 Akku mit Nummer aus der Eingabe füllen.OUT
902 Wert im Akkumulator in Ausgabewarteschlange verschieben.HLT
000 Im Beispielordner finden Sie weitere Beispielprogramme. Hier ist ein Beispiel für ein Programm, das eine Zahl aus der Eingabe liest und dann herunterzählt. Wenn also am Eingang eine 4 gelesen wird, werden am Ausgang 4, 3, 2, 1 und 0 ausgegeben.
INP
OUT
LOOP BRZ QUIT // Jump to QUIT if accumulator is 0
SUB ONE // Subtract from accumulator what is stored in ONE
OUT
BRA LOOP // Jump (unconditionally) to the memory address labeled LOOP
QUIT HLT // Label this memory address as QUIT
ONE DAT 1 // Store 1 in this memory address.
Sie können ein als Beispiel geschriebenes Programm nehmen, es in einer Datei speichern und diesen Dateinamen der Funktion assemble(file)
geben, die eine Liste dreistelliger Ganzzahlen erstellt, die Ihr Programm und Ihre Daten darstellen. Sie können dies der Funktion simulate!(program, inputs)
zuführen, um Ihr Programm auszuführen. Die Ausgabe wird ausgegeben.
Alternativ können Sie diesen Code kopieren, einfügen und in einen der unten beschriebenen webbasierten LMC-Simulatoren einfügen.
Sie können online mehrere browserbasierte Simulatoren für die LMC-CPU finden. Hier können Sie Programme durchlaufen und live beobachten, wie der virtuelle Computer funktioniert.
Es gibt mehrere Spiele, die Sie spielen können, basierend auf leichten Variationen der LMC-Idee. Dies ist möglicherweise eine gute Möglichkeit, Kinder in das Erlernen des Programmierens einzubeziehen.