\documentclass{bschlangaul-aufgabe}
\bLadePakete{syntax,spalten}
\begin{document}
\bAufgabenMetadaten{
  Titel = {Abitur 2018 III Aufgabe 4},
  Thematik = {Abitur 2018},
  Referenz = TECH.Ein-Adress.Abitur-2018-III,
  RelativerPfad = Module/50_TECH/10_Ein-Adress/Aufgabe_Abitur-2018-III.tex,
  BearbeitungsStand = mit Lösung,
  Korrektheit = unbekannt,
  Ueberprueft = {unbekannt},
  Stichwoerter = {Ein-Adress-Befehl-Assembler},
}

% Info_2020-11-20-2020-11-20_09.49.27.mp4 30 min

\begin{enumerate}

%%
%
%%

\item Gegeben ist folgendes Programm:

\begin{minted}{asm}
load 100
cmp 101
jmpnn 12
load 101
store 102
jmp 14
store 102
hold
\end{minted}

Der Zustand der Registermaschine wird im Folgenden durch die Inhalte des
Akkumulators A, des Befehlszählers BZ, des Statusregisters SR sowie der
Speicherzellen 100 bis 102 beschrieben.
\index{Ein-Adress-Befehl-Assembler}

Veranschaulichen Sie die durchlaufenen Zustände bei der Ausführung des
Programms anhand einer geeigneten Tabelle. Gehen Sie von folgendem
Anfangszustand aus: Der Befehlszähler BZ enthält den Wert $0$, die
Speicherzelle $100$ den Wert $4$ und die Speicherzelle $101$ den Wert
$5$. Geben Sie an, was das Programm in Abhängigkeit von den Startwerten
in den Speicherzellen $100$ und $101$ leistet.

Gegeben ist folgendes Struktogramm für die Methode $c(n)$ für natürliche
Zahlen $n \geq 3$.

\item Übertragen Sie diesen Algorithmus der Methode c in ein Programm
für die gegebene Registermaschine. Machen Sie auch die Speicherzelle
deutlich, in der der Wert der Variablen n zu Beginn und am Ende des
Programms steht.

\begin{multicols}{2}
\bPseudoUeberschrift{Assembler}

\bAssemblerDatei{Aufgabe_Abitur-2018-III.mia}

\bSpaltenUmbruch
\bPseudoUeberschrift{Minisprache}

\bMinispracheDatei{Aufgabe_Abitur-2018-III.mis}
\end{multicols}

\item Versehentlich wurde die Bedingung $n \geq 3$ bei der
Implementierung des Algorithmus durch $n \geq 2$ ersetzt. Erläutern Sie
kurz, welches Problem bei der Ausführung des Programms auftreten kann.
\end{enumerate}

\end{document}
