Lektion
Die Theorie — Mini-CPU: der Little Man Computer
Den Befehlszyklus aus Holen, Dekodieren und Ausführen durchläuft ein Prozessor für jeden Befehl. Beim Holen wird der Inhalt von PC nach MAR kopiert, das betreffende Speicherfach in MDR gelesen und dessen Inhalt nach CIR kopiert. Außerdem wird PC um 1 erhöht. Beim Dekodieren wird der Befehl in eine Operation (die Hunderterstelle) und eine Adresse (die letzten beiden Ziffern) zerlegt. Ausgenommen sind 901, 902 und 000: Diese Codes stehen als Ganzes für INP, OUT und HLT und enthalten keine Speicheradresse. Beim Ausführen wird die Operation durchgeführt. Dabei kann über MAR und MDR ein weiteres Speicherfach gelesen oder beschrieben werden.
Was die einzelnen Symbole bedeuten
PC- Befehlszähler: die Adresse des nächsten zu holenden Befehls
MAR- Speicheradressregister: die Adresse des Speicherfachs, das als Nächstes gelesen oder beschrieben wird
MDR- Speicherdatenregister: der gerade gelesene oder als Nächstes zu schreibende Wert
CIR- Befehlsregister: der gerade ausgeführte Befehl
ACC- Akkumulator: hier legen ADD, SUB und LDA ihr Ergebnis ab
- Setzt voraus
- Stuart Madnicks Little Man Computer (MIT, 1965) legt nicht fest, was passiert, wenn SUB ein Ergebnis unter 0 oder ADD eines über 999 liefert. Der Akkumulator dieses Simulators kann Werte von −999 bis 999 aufnehmen. BRP prüft daher das Vorzeichen. Ein Ergebnis außerhalb dieses Bereichs beendet den Programmlauf wegen Überlaufs; es wird nicht auf einen Wert im zulässigen Bereich zurückgeführt. Simulatoren für den Unterricht behandeln diesen Fall unterschiedlich. Solange der Akkumulator eines Programms zwischen 0 und 999 bleibt, läuft es auf allen gleich.
Aufgabe vollständig gelöst
-
Warum 2 × 99 insgesamt 801 Befehle braucht und 99 × 2 nur 25 4 Schritte
Klick auf 2 × 99, langsam und ändere dann die Eingaben auf 99, 2. Beide Durchläufe geben 198 aus. Zähle die ausgeführten Anweisungen für jeden Durchlauf und finde die Formel dafür. Wie viele Anweisungen braucht das Programm bei der ungünstigsten Reihenfolge, wenn das Produkt noch in ein Postfach passt?
-
Vor der Schleife stehen 2 INP- und 2 STA-Befehle: insgesamt 4 Befehle. Der Schleifenrumpf führt LDA b, BRZ, SUB one, STA b, LDA total, ADD a, STA total und BRA loop aus. Das sind 8 Befehle, wiederholt so oft, wie der Anfangswert von b angibt.
-
Sobald b den Wert 0 erreicht, führt die Schleife nur noch LDA b und BRZ aus. Danach beenden LDA total, OUT und HLT den Lauf: 5 weitere Befehle. Insgesamt braucht ein Lauf also 4 + 8b + 5 = 8b + 9 Befehle. Der Wert von a kommt in der Formel gar nicht vor.
-
Für b = 99 ergibt das 8 × 99 + 9 = 801; für b = 2 sind es 25. Die Ergebnistabelle zeigt 801 für die erste Reihenfolge und 25 für die zweite.
-
Das größte Produkt, das in ein Speicherfach passt, ist 999. Gibst du 1 und 999 ein, läuft die Schleife 999-mal: insgesamt 8.001 Befehle. Bei 999 und 1 läuft sie einmal: 17 Befehle.
Antwort
8b + 9 Befehle, wobei b die zweite Eingabe ist. Für dasselbe Produkt 999 braucht die eine Reihenfolge 8.001 Befehle, die andere 17, also etwa 470-mal so viele. Vergleicht ein Programm zuerst die Eingaben und verwendet den kleineren Faktor als Schleifenzähler, braucht es höchstens 8 × 31 + 9 Befehle zuzüglich des Vergleichs. Denn bei einem Produkt von höchstens 999 ist der kleinere Faktor höchstens 31.
-
Lernpfad
Wie ein Computer ein Programm ausführt
Quellen (4)
- Where the third insight's phrase comes from: the connecting tube between CPU and store, named the von Neumann bottleneck, and the remark that much of its traffic is not data but the names of data: John Backus, "Can programming be liberated from the von Neumann style? A functional style and its algebra of programs." Communications of the ACM 21(8), 613–641, August 1978. The 1977 ACM Turing Award Lecture.
- The date the first insight gives for the stored-program idea first running: The University of Manchester, "How a 70-year-old 'Baby' changed the face of modern computing." News, 21 June 2018.
- The machine itself: Madnick's 1965 design, the instruction codes, and the fact the page's assumes rests on, that a negative or over-999 result is left undefined: "Little man computer." Wikipedia, read 14 October 2026.
- A school simulator's instruction table, with BRP described as branching when the accumulator is zero or positive, the sign convention this page follows: 101computing.net, "LMC Simulator."