Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

gf_informatik:assembler:aufgaben_d [2024-06-07 13:33] – angelegt hofgf_informatik:assembler:aufgaben_d [2024-06-07 13:37] (aktuell) hof
Zeile 5: Zeile 5:
 **Ziel:** einen Countdown (10 bis 0) mit dem LMC programmieren. **Ziel:** einen Countdown (10 bis 0) mit dem LMC programmieren.
  
-Dokumentiere die Aufgabe auf OneNote. Mache dazu eine neue Seite.+Dokumentiere die Aufgabe, z.B. auf OneNote. Mache dazu eine neue Seite.
  
-1) Programmiere zuerst den Countdown mit Python mit einer *while-*Schleife. Es sollen also einfach der Reihe nach die Zahlen von 10 bis 0 ausgegeben werden. Füge den Code als Screenshot in die Dokumentation ein.+1) Programmiere zuerst den Countdown mit Python mit einer `while`-Schleife. Es sollen also einfach der Reihe nach die Zahlen von 10 bis 0 ausgegeben werden. Füge den Code als Screenshot in die Dokumentation ein.
  
 ++++Lösungen| ++++Lösungen|
Zeile 55: Zeile 55:
 ++++ ++++
  
-4) Am Code von der letzten Aufgabe ist etwas sehr mühsam: Man muss immer zuerst die beiden Zahlen (Startwert 10 und Schrittgrösse 1) von Hand in den Speicher schreiben. Ansonsten gibt der Code keinen Countdown aus. Hier gibt es einen Ausweg: Mithilfe des Keywords `DAT` kann man Daten über den Assemblercode in den Speicher schreiben, z.B.:+4) Am Code von der letzten Aufgabe ist etwas sehr mühsam: Man muss immer zuerst die beiden Zahlen (Startwert 10 und Schrittgrösse 1) von Hand in den Speicher schreiben. Ansonsten gibt der Code keinen Countdown aus. Hier gibt es einen Ausweg: Mithilfe des Befehls `DAT` kann man Daten über den Assemblercode in den Speicher schreiben, z.B.:
 <code> <code>
         ...         ...
Zeile 79: Zeile 79:
 ++++ ++++
  
-5) Im Befehl `BRP 1` geben wir an, dass wir (falls Akkumulator 0) zu Zeile 1 des Programms springen wollen. Diese Notation wird bei etwas komplexeren Codes schnell mühsam. Denn wenn sich der Code ändert, *ändern sich auch die Zeilenreferenzen*. Passt man also seinen Code an, muss man ständig die Zeilenreferenzen überprüfen und gegebenenfalls anpassen. Dieses Problem umgehen kann man mit **Sprung-Instruktionen**:+5) Im Befehl `BRP 1` geben wir an, dass wir (falls Akkumulator 0) zu Zeile 1 des Programms springen wollen. Diese Notation wird bei etwas komplexeren Codes schnell mühsam. Denn wenn sich der Code ändert, *ändern sich auch die Zeilenreferenzen*. Passt man also seinen Code an, muss man ständig die Zeilenreferenzen überprüfen und gegebenenfalls anpassen. Dieses Problem umgehen kann man mit **Labels**:
  
-Kennzeichne eine Zeile Code, du der du springen möchtest, mit einem Keyword, z.B. wird Zeile 1 im Code hier von `OUT` zu `LOOP OUT`. Mit `<Befehl> LOOP` können wir nun jederzeit zu dieser Zeile Code springen, auch wenn sich ihre Position verschiebt. Anstelle von `LOOP` kann man natürlich jedes beliebige Wort verwenden.+Kennzeichne eine Zeile Code, du der du springen möchtest, mit einem Label, z.B. wird Zeile 1 im Code hier von `OUT` zu `LOOP OUT`. Mit `<Befehl> LOOP` können wir nun jederzeit zu dieser Zeile Code springen, auch wenn sich ihre Position verschiebt. Anstelle von `LOOP` kann man natürlich jedes beliebige Wort verwenden. Beim Übersetzen des Assembler-Programms in Maschinensprache werden die Labels mit den tatsächlichen Zeilennummern der Instruktion ersetzt.
  
 Implementiere dies in deinem Code. Screenshot in Dokumentation einfügen. Implementiere dies in deinem Code. Screenshot in Dokumentation einfügen.
Zeile 134: Zeile 134:
 **Ziel:** Die Benutzerin soll nacheinander zwei Zahlen eingeben. Es soll dann die grössere der beiden Zahlen ermittelt und ausgegeben werden. **Ziel:** Die Benutzerin soll nacheinander zwei Zahlen eingeben. Es soll dann die grössere der beiden Zahlen ermittelt und ausgegeben werden.
  
-1) Programmiere das Programm zuerst mit Python. Verwende dazu eine if-else-Verzweigung.+1) Programmiere das Programm zuerst mit Python. Verwende dazu eine `if`-`else`-Verzweigung.
  
 ++++Lösung| ++++Lösung|
Zeile 196: Zeile 196:
 ===== Lösungen ===== ===== Lösungen =====
  
-<nodisp 1>+<nodisp 2>
 ++++Lösungen| ++++Lösungen|
  
  • gf_informatik/assembler/aufgaben_d.1717767183.txt.gz
  • Zuletzt geändert: 2024-06-07 13:33
  • von hof