Jan Gampe

About everything

Aufgabenblatt 6

Die Bewertungsgrundlage ist auch hier anders. Bitte beachten Sie dies.

Abgabetermin ist der 26.06.2018

Aufgabe 0

Als Puzzleeingabe finden Sie Assemblercode vor. Dieser spezielle Assmbler arbeitet auf Registern, welche beliebig große (oder kleine) ganze Zahlen beinhalten kann.

Sie dürfen davon ausgehen, dass jedes Register zum Start des Programms mit dem Wert Null vorinitialisiert ist. Es existieren vier Register a, b, c und d.

Die Assemblersprache besteht aus den folgenden Befehlen:

Das Programm ist zuende, sobald Sie in eine Zeile springen, in der kein Code mehr steht.

Welchen Wert hat das Register a nach Ablauf Ihrer Puzzleeingabe?

Beispiel

sto 41 a
inc a
inc a
dec a
jnn a 2
dec a

Dieses Beispiel setzt zuerst den Wert 41 ins Register a, erhöht diesen Wert dann einmal, dann noch einmal, verringert ihn einmal, prüft dann, ob das Register a Null ist (nein, ist es nicht) und überspringt deswegen die letzte Instruktion.

Das Programm endet mit einem Wert von 42 in Register a.

Aufgabe 1

Welchen Wert hat das Register a nach Programmende, falls Register c nicht mit 0, sondern mit 3 vorinitialisiert wird?

Bewertungsgrundlage

Diese Aufgabe stellt andere Anforderungen als die Vorangegangenen. Sie müssen ein geeignetes Modell finden, um den Assemblercode zu interpretieren und dann ggf. weitere Anstrengungen bemühen, um die Lösung zu finden.

Die Bewertung der Abgabe besteht aus den unten folgenden Punkten, die ihr Lösungsprojekt enthalten muss. Nehmen Sie als Vorlage die Musterlösung zu Aufgabe 0 zur Hand.

Seien Sie außerdem darauf vorbereitet, Ihr Projekt während des Praktikumstermins vorzustellen und dazu Fragen zu beantworten.

Abgabemodalitäten

Zur Abnahme ist die persönliche Anwesenheit erforderlich. Ihr Lösungsprojekt muss zum Abgabetermin im vorher von Ihnen eingerichtetem persönlichen, privaten GitLab-Projekt abrufbar sein.