Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Klausur 10/2003
Kann mir jemand verraten, was in A.3 diese Zeilen hier bedeuten?
movl L24(%eax), %eax
.long L4
Und wo ist bitte der Unterschied zwischen [m]*%eax[/m] und m[/m]?
*%eax kommt im skript vor?
hab ich nicht gesehen
Wenn ich mich recht entsinne, hieß die Zeile:
jmp *%eax
Das ist eine Fußnote, die weiter unten auf dem Blatt erklärt ist. Das Ding springt dann einfach an die Adresse die in %eax steht.
movl L24(%eax),%eax
scheint meines Erachtens irgendeine Adresse zu erzeugen an der ein Funktionsaufruf steht. Könnte im C-Code ein Pointer auf ein Array von Funktionszeigern gewesen sein.
Ja, die Zeile hieß wohl so, aber dann würd ich da einfach (%eax) sagen, und nicht C-Pointer im Prozessor ausführen.
genauso wie C-Funktionen. Wär ja mal ganz was neues, wenn Assembler oder Prozessor C verstehen würden…
Weitere Frage zur Aufgabe 5b, selbe Klausur, da soll man ein Schaltnetz für die Funktion davor aufbauen. Wir haben jetzt hier die Funktion dazu mathematisch optimiert und die sieht so aus:
color=blue/64 + 31/64
= 4*z - z/32 + 31/64[/color]
Die 31/64 sind < 0,5, fallen also weg. Dann bleibt doch nur noch ein
z shl 2 - z shr 5
übrig, oder? Die beiden shifts kann man ja fest verdrahten, und beide Werte dann addieren. Da wir aber ein Minus haben, müssen wir die 2. Zahl zuerst noch invertieren und beim 8bit-VA das Carry-in auf 1 setzen.
Richtig so?
Ganz weglassen kannst du die 31/64 meiner Meinung nach nicht; schliesslich kann es bei z/32 + 31/64 zu einem Uebertrag kommen.
Eine schoene Loesung fuer das Problem hab ich allerdings auch noch nicht gefunden…
ausserdem, was soll denn “und die gängigen logikelemente” heißen?
was isn bitteschö ein volladdierer? der verwendet wohl das super spezielle bauteil “X”, mit dem man auch das halteproblem lösen kann?! LOL
Naja, glaub der Volladdierer unterscheidet sich vom Halbaddierer dadurch, dass er auch ein CarryIn hat und nicht nur das CarryOut. Somit kann das ergebniss des vorgaengerbausteins in die Berechnung einfliessen (eben als uebertrag)
Aber das Halteproblem loesst er leider nicht mist
trotzdem waere es gut zu wissen wie man son kack in hardware giesst…
Hm, meinst du wir müssen nen HA/VA in Logik hinschreiben? Das wäre dumm, muss grade mal die Unterlagen dazu suchen…
was genau meinst du denn bitte? das teil als schaltnetz? noe, das glaub ich eher nicht.
Mehr Spass macht mir hingegen die Tatsache dass ich nicht weiss wie man die grundsaetzlichen elementaren Gatter zammschalten muss um sowas rauszukriegen, wie die wollen. :rolleyes:
Anmerkung: Jemand der sich hier gut auskennt, koennte hier was posten, dann waer ich sehr dankbar.
Vielleicht ist mit dem verwenden von nur einem Addierwerk das gemeint, das Du hier eben nur den Übertrag berechnen musst, also nur die AND Gatter hintereinanderschalten musst. Dann natürlich zwei Zahlen shiften, abzeihen usw.
Natuerlich kann ich keine Verantwortung fuer die Richtigkeit der Loesung uebernehmen, (schließlich bin ich da ja auch nicht selber drauf gekommen), aber fuer mich sieht das schon richtig aus.
Attachment:
zeichnungen.pdf: https://fsi.cs.fau.de/unb-attachments/post_16213/zeichnungen.pdf
hmm … kann das sein, dass die 5b) durch Verwendung von KEINEM einzigen “gängigen Logikelement” lösbar ist?
Einfach Z5-Z0 von links her mit den VAs verbinden und dann Z5 an den 2. Eingang jeden VAs … Carry is wurscht, weil Subtraktion (im Prinzip) und die VAs dann direkt mit den Ms darunter verbinden … Null Logik … wo ist die Herausforderung, oder haben wir was übersehen?
Mehr Spass macht mir hingegen die Tatsache dass ich nicht weiss wie man die grundsaetzlichen elementaren Gatter zammschalten muss um sowas rauszukriegen, wie die wollen. :rolleyes:
Anmerkung: Jemand der sich hier gut auskennt, koennte hier was posten, dann waer ich sehr dankbar.
schon ma was von Karnaugh-Diagrammen ghört?
Zuerst spezifizierst du den output deiner Funktion in Abhängigkeit von den Eingangsvariablen in ner Tabelle, dann trägst du sie in ein Karnaugh-Diagramm ein (OTR1-Stoff) und optimierst sie entsprechend der tollen Regeln für solche K-Diagramme. Dann hast Du bereits die gesuchte Funktion in DNF und musstse nur noch ein HW giessen.
doch doch, davon schon. hm, aber ich hab ein leichtes problem beim aufstellen der funktionen fuer ein/ausgabe. oh weh oh weh
5b anders (nein, nicht meine loesung)
is noch anderes zeuch dabei
Attachment:
zeichnungen.pdf: https://fsi.cs.fau.de/unb-attachments/post_16233/zeichnungen.pdf
schaut gut aus.
kann mal jemandvon euch von der 4ten aufgabe nen plan?
Speziell: die 4a
zu M: in den carry müsste IMO nur Nicht(Z4) rein. Nicht(Z3) ist egal, da durch die 31 und das vorherige carry sowieso ein übertrag stattfindet, unabhängig von Z3.