====== Maschinensprache-Aufgaben ====== ===== Level 1 ;-) ===== ==== Aufgabe 1 ==== Schreiben Sie jeweils ein kurzes Assemblerprogramm, das den Wert des folgenden Terms berechnet. Verwenden Sie dabei symbolische Adressierung und legen Sie unter folgenden Symbolen diese Werte ab: ^Adresse^Wert^ |a|1| |b|2| |c|5| |d|10| |e|20| |ergebnis|0| Das Programm soll das Ergebnis in der mit ''ergebnis'' bezeichneten Speicherzelle ablegen und keine "immediate"-Befehle nutzen! * a) 5 + 10 * b) 2*(10 + 1) * c) 20/(5 + 2) - 1
[[.aufgabe1:start|Lösung]] ==== Aufgabe 2 ==== Lösen Sie die Aufgabe 1 unter Verwendung der immediate-Befehle. [[.aufgabe2:start|Lösung]] ===== Level 2 ;-) ===== ==== Aufgabe 3 ==== Schreiben Sie ein Programm, das zu Beginn den Wert 0 in eine mit a bezeichnete Speicherzelle schreibt und anschließend 10-Mal den Wert 2 hinzuaddiert. Das Ergebnis soll bei jeder der zehn Wiederholungen wieder in die Speicherzelle ''a'' geschrieben werden.
==== Aufgabe 4 ==== Schreiben Sie ein Programm, das den Wert von $2^6$ berechnet, indem es zu Beginn den Wert 1 in den Akkumulator lädt und diesen dann 6-mal mit dem Wert 2 multipliziert. Am Ende soll das Ergebnis in eine mit ''ergebnis'' bezeichnete Speicherzelle geschrieben werden.
==== Aufgabe 5 ==== Schreiben Sie ein Programm, das die Zahlen von 1 bis 10 addiert und das Ergebnis am Ende in eine mit ''ergebnis'' bezeichnete Speicherzelle schreibt.
===== Level 3 ;-) ===== ==== Aufgabe 6 ==== a) Beschreiben Sie, was das folgende Programm macht: LOADI 1 STORE 100 STORE 101 STORE 102 s1: LOAD 101 ADD 100 STORE 101 LOAD 102 MUL 101 STORE 102 LOAD 101 CMPI 6 JLT s1 HOLD b) Schreiben Sie das Programm in ein leichter lesbares Programm mit symbolischer Adressierung um. [[.aufgabe6:start|Lösung]] ==== Aufgabe 7 ==== Schreiben Sie ein Programm, das die Quadratzahlen von 1 bis 6 einzeln berechnet und addiert.
==== Aufgabe 8 ==== Schreiben Sie ein Programm, das den größten gemeinsamen Teiler zweier natürlicher Zahlen a und b berechnet, indem es so lange die kleinere der beiden Zahlen von der größeren abzieht, bis die beiden Zahlen gleich sind.
==== Aufgabe 9 (nur für Hacker/-innen, nicht prüfungsrelevant!) ==== Schreiben Sie nur mit den [[..:assembler:start#die_wichtigsten_befehle|auf der vorherigen Seite vorgestellten Befehlen]] (also ohne indirekte Adressierung!) ein möglichst kurzes Programm, das in die Speicherzellen 100, 101, ..., 199, 200 jeweils den Wert 10 schreibt. ===== Indirekte Adressierung ===== Der Befehl LOAD (110) holt sich eine Adresse und lädt dann den Wert der Speicherzelle mit **dieser Adresse** in den Akkumulator. **Beispiel:** Steht in der Adresse 110 der Wert 120, so bewirkt der obige Befehl, dass der Wert der Speicherzelle 120 in den Akkumulator geladen wird. {{ .:pasted:20251108-205703.png?500 }} * Dass der Assembler den Opcode für die Indirekte Adressierung verwenden muss, erkennt er an den runden Klammern. \\ * Auch viele andere Befehle der Minimaschine gibt es mit indirekter Adressierung, **insbesondere den Befehl ''STORE (Adresse)''**. ===== Level 4 ;-) ===== ==== Aufgabe 10 ==== Schreiben Sie mithilfe von indirekter Adressierung ein möglichst kurzes Programm, das * a) die Speicherzellen 10, 11, ..., 49, 50 jeweils mit dem Wert 117 belegt. * b) die Speicherzellen 10, 11, ..., 49, 50 mit den Werten 1, 2, 3, ..., 41 belegt.
==== Aufgabe 11 ==== Schreiben Sie mithilfe von indirekter Adressierung ein möglichst kurzes Programm, das die Summe der Werte der Speicherzellen 100, 101, ..., 120 berechnet und in eine mit ''ergebnis'' bezeichnete Speicherzelle ablegt.
====== "Final Boss": Abituraufgaben ====== ==== Aufgabe 12 ==== * [[https://www.isb.bayern.de/fileadmin/user_upload/Gymnasium/Leistungserhebungen/Abiturpruefung/Informatik/Informatik_2023_A.pdf|Abitur 2023, Aufgabe III 4]]] * [[https://www.rupprecht-gymnasium.de/images/abituraufgaben/2023_III.pdf|Lösung dazu]] ==== Aufgabe 13 ==== * [[https://www.isb.bayern.de/fileadmin/user_upload/Gymnasium/Leistungserhebungen/Abiturpruefung/Informatik/informatik_2021_a.pdf|Abitur 2021, Aufgabe III 4]] * [[https://www.rupprecht-gymnasium.de/images/abituraufgaben/2021_III.pdf|Lösung dazu]]