====== Aufgaben C: Instruktionszyklus ======
==== Aufgabe C1 ====
++++Bemerkung LP|
Alternativ: Kann ausdrucken für SuS
++++
1. Kopiere das Bild unten / lade es herunter. Wichtig: Klicke zuerst mehrfach darauf, bis es volle Grösse hat.
1. Füge es auf einer leeren Seite in OneNote ein.
1. Schreibe zu jedem der drei Schritte des Instruktionszyklus eine kurze Zusammenfassung *in eigenen Worten*.
{{ :gf_informatik:computerarchitektur_sca:vn_instructioncycle_blanks.png?500 |}}
Oder als PDF zum herunterladen und ausdrucken: {{ :gf_informatik:computerarchitektur_sca:von_neumann_zyklus_leer.pdf |}}
++++Lösungen|
Siehe Slides.
++++
==== Aufgabe C2 ====
In den Slides haben wir den ersten Durchgang des Instruktionszyklus für das Programm unten genau angeschaut.
LDA 97
ADD 98
STA 99
OUT
HLT
1. Führe dieses Programm nun mit dem LMC aus. Lasse die Simulation mit relativ langsamer Geschwindigkeit laufen: OPTIONS / 'default slow' oder 'default normal' oder mit '<<' und '>>' Tempo verändern.
1. Versuche für jede Programmzeile den Instruktionszyklus nachvollziehen zu können. Du sollst zu jedem Zeitpunkt wissen, bei welchem Schritt sich der Zyklus gerade befindet.
==== Aufgabe C3 ====
Möchte man ein Programm schreiben, kann man eine Programmiersprache wie Python wählen, oder man kann das Programm direkt in Assemblersprache schreiben. Beides hat Vor- und Nachteile. Notiere für die beiden Arten der Programmierung die jeweiligen Vorteile:
* **Vorteile Programmiersprache (z.B. Python)**
* **Vorteile Assemblersprache**
++++Lösungen (nur LP)|
* **Vorteile Programmiersprache (z.B. Python):** einfacher, schneller zum Programmieren
* **Vorteile Assemblersprache:** keinerlei Einschränkungen, volle Kontrolle, alles was theoretisch machbar ist mit CPU, kann man umsetzen
++++
==== Aufgabe C4 ====
Schreibe die folgenden einfachen Programme in Assemblersprache:
=== I) Verdoppler ===
Die Benutzerin soll eine Zahl eingeben können. Der Code berechnet das Doppelte dieser Zahl und gibt sie aus.
++++Lösung (nur LP)|
INP
STA 99
ADD 99
OUT
HLT
++++
=== II) 3xAddition ===
Die Benutzerin soll hintereinander drei Zahlen eingeben können. Der Code berechnet deren Summe und gibt sie aus.
++++Lösung (nur LP)|
INP
STA 98
INP
STA 99
INP
ADD 98
ADD 99
OUT
HLT
++++