LMC ist eine Simulation eines Rechners. Sie lässt sich online starten und zeigt schön die Zyklen und Komponenten der Von-Neumann-Architektur.
- Der PROGRAM COUNTER beinhaltet zweistellige Zahlen (0 bis 99).
- Der ACCUMULATOR beinhaltet dreistellige Zahlen und ein Vorzeichen (-999 bis 999).
- Der OUTPUT beinhaltet Informationen in einer Liste (in zwei Kolonnen, Inhalt scrollt).
- Die INPUT-Instruktion erwartet nach der Eingabe einer Zahl noch ein ENTER.

Die erste Ziffer in einem vom Memory gelesenen Befehl gibt die Instruktion an («was ist zu tun»). Damit wir uns die Instruktion besser merken können, besitzt sie auch einen Kurznamen. Die zwei weiteren Ziffern beinhalten die Adresse, die mit der Instruktion verwendet wird.
Aufgabe: Einstieg «Little Man Computer»
Wir machen Schritt für Schritt ein Einstiegsbeispiel in welchem 2 Zahlen addiert werden. Diese Zahlen werden vom Benutzer als Input mitgegeben. Das Resultat sollte als Output ausgegeben werden.
- Öffne den Little Man Computer
- Schreibe diesen Code in das Textfeld and klicke auf Submit
INP
STA NUM1
INP
STA NUM2
LDA NUM1
ADD NUM2
STA RESULT
OUT
HLT
NUM1 DAT
NUM2 DAT
RESULT DAT
- Klicke auf Run und beobachte was passiert
- Beschreibe in eigenen Worten was Zeile für Zeile im Programm passiert
- Erkennst du den Von-Neumann-Zyklus?
- Bei welchen Befehlen werden nicht alle Schritte des Zyklus ausgeführt?
Code | Name | Description |
---|---|---|
0 | HLT | Stop (Little Man has a rest). |
1 | ADD | Add the contents of the memory address to the Accumulator |
2 | SUB | Subtract the contents of the memory address from the Accumulator |
3 | STA or STO | Store the value in the Accumulator in the memory address given. |
4 | This code is unused and gives an error. | |
5 | LDA | Load the Accumulator with the contents of the memory address given |
6 | BRA | Branch - use the address given as the address of the next instruction |
7 | BRZ | Branch to the address given if the Accumulator is zero |
8 | BRP | Branch to the address given if the Accumulator is zero or positive |
9 | INP or OUT | Input or Output. Take from Input if address is 1, copy to Output if address is 2. |
9 | OTC | Output accumulator as a character if address is 22. (Non- standard instruction) |
DAT | Used to indicate a location that contains data. |
Aufgabe: Beispielprogramme
Untersuche die eingebauten Beispielprogramme add
, max
, overwrite
, ascii table
- Lies die Erläuterung in der LMC-Help: http://www.peterhigginson.co.uk/LMC/help.html
- Spiele die Programme langsam und schnell durch.
Aufgabe: Maximum 3
Erstelle ein Programm max3
, das drei Zahlen einliest und die grösste der drei Zahlen ausgibt.
Zusatzaufgabe: Bootloader
- Erstelle einen «Bootloader»:
- Ein Programm, das so lange Zahlen einliest, bis die Zahl 0 eingegeben wird, die Zahlen der Reihe nach ab Adresse 30 in den Speicher füllt.
- Nach Eingabe der Zahl 0 soll das Programm zur Adresse 30 springen und dort mit der Programmausführung weiterfahren.
- Teste den Bootloader, indem du über den Input das Programm
add
eingeben und ausführen lässt.