Lehrstuhl Für Angewandte Informatik II: Aufgabe 9.1
Lehrstuhl Für Angewandte Informatik II: Aufgabe 9.1
Lehrstuhl Für Angewandte Informatik II: Aufgabe 9.1
Sei f ∈ F (3) eine boolesche Funktion mit der Indexmenge I(f ) = {0, 1, 4, 6, 7}.
(a) Nutzen Sie Ihr Wissen über Minterme, um einen Schaltkreis für die Funktion f zu bestimmen. Gehen
Sie dabei wie folgt vor:
• Bestimmen Sie alle Minterme der booleschen Funktion f .
• Konstruieren Sie einen booleschen Term e mit [λx1 , x2 , x3 .e] = f über die Minterme.
• Zeichnen Sie den Schaltkreis für die Funktion f , der durch den Term e festgelegt ist.
(b) Geben Sie analog mit Hilfe der Maxterme einen weiteren Schaltkreis für die Funktion f an.
Das Minimalpolynom m kann man direkt mit der Methode von Karnaugh aus dem Karnaugh-Diagramm
ablesen:
m = x̄1 x̄2 x̄3 + x1 x̄2 x3
1
(a) Zeigen Sie, dass der boolesche Term e = x̄2 · (x1 + x̄3 ) · (x̄1 + x3 ) äquivalent ist zum Minimalpolynom
m.
(b) Vergleichen Sie die Kosten (Anzahl an Variablen im Term; doppelte mitgezählt) von m und e. Hat
das Minimalpolynom wirklich die geringsten Kosten? Falls nicht, wieso ist dies möglich?
Mit Hilfe der Kenntnisse, die Sie über die MIPS-Assemblersprache erworbenen haben, können Sie bereits
einfache Assemblerprogramme, die für komplexere Instruktionssets geschrieben wurden, analysieren und
modifizieren.
Auf der E-Learning-Seite finden Sie ein Assemblerprogramm für x86-64-Prozessoren, das aus der Überset-
zung des C-Programms „pow1.c“, welches Sie ebenfalls auf der E-Learning-Seite finden, entstanden ist.
Doch bei der Übersetzung scheinen sich Fehler eingeschlichen zu haben, denn es liefert bei Ausführung
nicht die richtigen Ergebnisse.
Erklären Sie den Fehler und korrigieren Sie das Programm! Geben Sie an, welche Änderungen (Zeilen-
nummer, veränderter Befehl) notwendig sind, damit das Programm richtige Ergebnisse liefert!
Hinweis: Auf x86-64-Systemen (z. B. im CIP-Pool) können Sie aus dem Assemblerprogramm unter Li-
nux mit dem Befehl „gcc -o pow1-x86_64-buggy pow1-x86_64-buggy.s“ ein ausführbares Programm
namens pow1-x86_64-buggy erzeugen. Testen Sie das Verhalten des Programms beim Start aus der Kom-
mandozeile mit einer kleinen ganzen Zahl als erstem und einer kleinen natürlichen Zahl größer 0 als
zweitem Argument!
Analysieren Sie das auf der E-Learning-Seite bereitgestellte MIPS-Assemblerprogramm rle.s. Welche
Bedeutung haben die im Datensegment abgelegten Daten und wie entsteht aus diesen Daten die Ausgabe
des Programms?