\documentclass[10pt,a4paper]{article}

\usepackage{ngerman}
\usepackage{amstext}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{stmaryrd}
\usepackage{enumerate}
\usepackage{thumbpdf}
\usepackage{graphicx}
\usepackage{float}
\usepackage[T1]{fontenc}
\usepackage{ae}
\usepackage[latin1]{inputenc}

\DeclareMathOperator{\CSA}{CSA}
\DeclareMathOperator{\FA}{FA}
\DeclareMathOperator{\FF}{FF}
\DeclareMathOperator{\MUX}{MUX}
\DeclareMathOperator{\Enc}{Enc}
\DeclareMathOperator{\Dec}{Dec}
\DeclareMathOperator{\FDec}{FDec}
\DeclareMathOperator{\BCD}{BCD}
\DeclareMathOperator{\BA}{BA}
\DeclareMathOperator{\PP}{PP}
\DeclareMathOperator{\alu}{alu}
\DeclareMathOperator{\testi}{testi}
\DeclareMathOperator{\shifta}{shifta}
\DeclareMathOperator{\IR}{IR}
\DeclareMathOperator{\CLA}{CLA}


\floatstyle{ruled}
\newfloat{schematic}{htbp}{los}
\floatname{schematic}{Schaltkreis}

\begin{document}

\newcommand{\AND}{\ensuremath{\wedge}}
\newcommand{\OR}{\ensuremath{\vee}}
\newcommand{\SetR}{\ensuremath{\mathbb{R}}}
\newcommand{\SetN}{\ensuremath{\mathbb{N}}}
\newcommand{\SetZ}{\ensuremath{\mathbb{Z}}}
\newcommand{\SetQ}{\ensuremath{\mathbb{Q}}}
\newcommand{\QED}{\ensuremath{\hspace*{\fill}\square}}

\thispagestyle{empty}

\title{Rechnerarchitektur - Übungsblatt 10 \\
	Übungsgruppe 8 - Di, 15-17 Uhr \\
	Steffen Heil}
\author{Jan Hendrik Dithmar (Matrikelnummer 2031259) \\
	Carsten Saar (Matrikelnummer 2030107) \\
	Thomas Ospelt (Matrikelnummer 2029959) \\
	Timo Adam (Matrikelnummer 2031946)}
\date{}

\maketitle

\newpage

\section*{Aufgabe 2}
\begin{tabular}{ll}
	\texttt{R1 = R0 + 2} &
		// Anfang bei Speicheradresse 2 \\
	\texttt{R2 = R0 + 1} &
		// Initialisierungswert für Speicherzellen \\
	\texttt{M$_1$(R1 + 0) = R2} &
		// \texttt{LOOP1:} speichere 1 an derzeitiger Speicherstelle \\
	\texttt{R1 = R1 + 1} &
		// gehe zur nächsten Speicherzelle \\
        \texttt{R3 = (R1$\le$1000 ? 1 : 0)} &
                // vergleiche aktuelle Adresse mit Ende \\
        \texttt{PC = PC + (R3=1 ? -12 : 4)} &
                // wenn noch nicht Ende zurück zu \texttt{LOOP1} \\ \\
        \texttt{R1 = R0 + 2} &
                // Anfang bei Speicheradresse 2 \\
        \texttt{R2 = R1 + 0} &
                // \texttt{LOOP2:} speichere aktuelle potentielle Primzahl für Inkrement \\
        \texttt{R3 = M$_1$(R1 + 0)} &
                // lese Speicher an aktueller Adresse \\
        \texttt{PC = PC + (R3=0 ? 24 : 4)} &
                // wenn hier schon eine Null, Vielfache nicht auf Null setzen (\texttt{SKIP}) \\
        \texttt{R1 = R1 + R2} &
                // \texttt{LOOP3:} die Primzahl selbst soll mit 1 markiert bleiben \\ &
                // bzw. nächstes Vielfaches bearbeiten \\
        \texttt{R3 = (R1$\le$1000 ? 1 : 0)} &
                // vergleiche aktuelle Adresse mit Ende \\
        \texttt{PC = PC + (R3=0 ? 12 : 4)} &
                // wenn schon Ende dann raus (\texttt{SKIP}) \\
        \texttt{M$_1$(R1 + 0) = R0} &
                // setze Speicherstelle auf Null \\
        \texttt{PC = PC - 16} &
                // nächstes Vielfaches bearbeiten (\texttt{LOOP3}) \\
        \texttt{R1 = R2 + 1} &
                // \texttt{SKIP:} restauriere letzte bearbeitete Primzahl \\ &
                // und erhöhe um 1, um nächste potentielle zu bearbeiten \\
        \texttt{R2 = (R1$\leq$1000 ? 1 : 0)} &
                // vergleiche aktuelle Adresse mit Ende \\
        \texttt{PC = PC + (R2$\neq$0 ? -40 : 4)} &
                // wenn noch nicht Ende, Schleife \texttt{LOOP2} erneut durchlaufen \\ &
                // ansonsten fertig \\
\end{tabular}

\end{document}