====== 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 ++++