Dann begrüße ich Sie zur Vorlesung der Rundlage Rechneraktur diese Woche.
Letzte Woche sind wir angekommen aus dem Kapitel 4 Hardware, Nahe Programmierung in Assembler.
Ich hatte Ihnen ein paar Beispiele gezeigt, wie man mit dem Intel 80x86 Assembler erste
Schritte macht. Und in Kapitel 4 und 5 sind wir angekommen bei einer Sache, die nicht ganz
unwichtig ist, auch für die Klausur, also Behandlung von Kontrollstrukturen. Da lassen
sich immer ganz nett Aufgaben machen. Also, apropos Klausur, falls Sie es noch nicht wissen,
wissen Sie schon alle, wann der Termin ist? Ich glaube, im September, am 27. September,
findet die Klausur statt. Zur Klausur sage ich dann, in drei Wochen, zwei Wochen bei der
letzten Vorlesungsstunde, da machen wir noch ein paar Dinge, geben wir auch noch einmal
Hinweise, ich gebe noch einmal Hinweise, was Sie besonders angucken sollten. Und wir machen
auch noch, als in der Vergangenheit, eigentlich immer ganz gut bewährt, noch einmal ein oder
zwei Wochen vorher noch einmal so eine Art Tutorium. Da können Sie noch einmal gezielt
Fragen stellen oder wirklich noch einmal ein paar Dinge durch, um Sie da richtig darauf
vorzubereiten. So, also zu dieser Behandlung von den Kontrollstrukturen, insbesondere wichtig
jetzt bei diesen Ifs, denn Als, ist also diese Short Circuit Semantik. Sinn und Zweck von
diesem Ganzen ist eben die Anzahl der Go-Tours. Und Go-Tour ist unsere einzige Kontrollstruktur,
die also den Kontrollfluss manipuliert, wie wir am Assembler kennen, zum Minimieren.
Die Anzahl der Go-Tours, die dann da tatsächlich ausgeführt werden sollen, mögen recht klein
sein und das kann man eben mit dieser Short Circuit Semantik erreichen, beispielsweise
wie hier jetzt gezeigt, angenommen wir haben also eine logische Unverknüpfung. Was kann
man tun? Ja, man muss also im Prinzip bei den einzelnen Bedingungen immer auf das Gegenteil
abfragen und dann, wenn einmal die Bedingung verletzt ist in der Ausgangsgleichung bzw.
wenn sie dann erfüllt ist in der Negation, bei der Überprüfung der Negation, springt
man über diesen Sandteil hinweg. Hier steht es Go-to-if-out und damit ist man aus der
If-Anweisung bereits draußen. Und das muss man halt nacheinander machen für alle, die
hier gelistet sind, für alle Teilbedingungen, die in einer Unt-Abfrage gelistet sind. Gut,
das Gleiche kann man sich dann überlegen, wie das stattfinden muss, wenn wir eine Oder-Verknüpfung
haben. I kleiner 10 oder J kleiner 20, wie jetzt auf der Folie ein Beispiel gezeigt.
Auch da gibt es eben eine Umformung und die Umformung lautet dann eben so, dass ich die
ersten immer angucke, die belasse ich, also die ersten Teilabfragen von links nach rechts
betrachtet, die belasse ich in der Urform immer erhalten, I kleiner 10, I kleiner 10.
Und sobald da eine Bedingung erfüllt ist, kann ich in den Venteil der Bedingung springen.
Go-to-vent clause, also springt man da rein. Und nur bei der letzten da muss ich aufpassen,
bei der letzten muss ich natürlich dann fragen nach dem Gegenteil, wenn es nicht erfüllt
ist bzw. wenn das Gegenteil erfüllt ist, dass ich dann über den Venteil drüberspringe,
also go-to-if-out. Hier, Venteil ist dann übersprungen worden. Und so kann ich also
solche Anweisungen, wie ich es in der Hochsprache relativ einfach verstehen kann, die hier oben
sind natürlich wesentlich pragmatischer als die da unten, da muss ich mich erstmal durch
mehrere Anweisungen durcharbeiten und es sind dann auch noch diese in der Hochsprache unbeliebten
Go-to-Befehle drin. Aber ich komme bei der Implementierung nicht drum herum. Das heißt
also, dann müssen Sie sich das dann halt überlegen, wie löse ich so etwas auf. Geht
auch für andere Kontrollstrukturen, haben wir zum Beispiel das while, das while, das
können wir dann eben zurückformen auf das, was wir jetzt schon gemacht haben, der if-Anweisung,
kennen wir, wie wir die jetzt auflösen. Allerdings müssen wir noch ein paar Dinge davor schreiben,
weil heißt ja, wir gehen durch diesen Schleifenkörper nur dann durch, wenn also die Bedingung erfüllt
ist, also wir laufen nicht auf jeden Fall einmal durch, wie bei einer Repeat-Antil-Schleife.
Folglich müssen wir erstmal gleich hier auf eine Marke hinspringen, in dem abgefragt
wird, ob die Bedingung erfüllt ist und wenn ja, dann gehen wir auf den Schleifenkörper
und dann läuft diese while-Schleife hier eben ab, solange bis die Bedingung eben verletzt
wird. Ja bei Repeat-Antil könnte man sich wahrscheinlich auch überlegen, wie man das
Presenters
Zugänglich über
Offener Zugang
Dauer
01:27:28 Min
Aufnahmedatum
2012-07-02
Hochgeladen am
2019-04-12 03:39:02
Sprache
de-DE
Ziel der Vorlesung ist, die Grundlagen beim Aufbau eines Rechners zu vermitteln. Dies beinhaltet die Grundkomponenten, wie das Leitwerk, das Rechenwerk, das Speicherwerk und das Ein-/Ausgabewerk. Ausgehend vom klassischen von Neumann-Rechner wird der Bogen bis zu den Architekturen moderner Rechner und Prozessoren geschlagen.
Grundprinzipien der Ablaufstuerung bei der Berarbeitung von Befehlen werden ebenso behandelt wie Aufbau und Funktionsweise eines Caches und die Architektur von Speichern im Allgemeinen. Das Konzept der Mikroprogrammierung wird erläutert. Ferner wird der Einstieg in die hardwarenahe Programmierung moderner CPUs mittels Assembler vorgestellt und erprobt. Aufbau und Funktionsweise peripherer Einheiten und Bussysteme werden ebenfalls behandelt.
Die Studierenden sollen am Ende der Vorlesung den Aufbau und die Funktionsweise der Architektur eines Rechners, z.B. eines PCs, und des darin enthaltenen Prozessors nicht nur kennen, sondern auch die Gründe für deren Zustandekommen verstanden haben.