Skip to content

Little Man Computer

Rechnerarchitektur

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.
Screenshot LMC

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.

		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?
Befehle des LMC
CodeNameDescription
0HLTStop (Little Man has a rest).
1ADDAdd the contents of the memory address to the Accumulator
2SUBSubtract the contents of the memory address from the Accumulator
3STA or STOStore the value in the Accumulator in the memory address given.
4This code is unused and gives an error.
5LDALoad the Accumulator with the contents of the memory address given
6BRABranch - use the address given as the address of the next instruction
7BRZBranch to the address given if the Accumulator is zero
8BRPBranch to the address given if the Accumulator is zero or positive
9INP or OUTInput or Output. Take from Input if address is 1, copy to Output if address is 2.
9OTCOutput accumulator as a character if address is 22. (Non- standard instruction)
DATUsed to indicate a location that contains data.

Aufgabe: Beispielprogramme

Untersuche die eingebauten Beispielprogramme add, max, overwrite, ascii table

  1. Lies die Erläuterung in der LMC-Help: http://www.peterhigginson.co.uk/LMC/help.html
  2. 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

  1. 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.
  2. Teste den Bootloader, indem du über den Input das Programm add eingeben und ausführen lässt.

Gymnasium Kirchenfeld, fts & lem