Blatt 0: Rechnerarchitektur, URA, Assembler, Zahlendarstellung SS2015 Übungen zu Grundlagen der Rechnerarchitektur und -organisation(ÜGRa) Blatt 0 Ausgabe: Abgabe: 2015-04-20 2015-04-27 Bonusaufgaben • Aufgabenstellung genau lesen und nur Gefragtes beantworten! • Kein Aufsatz mit Einleitung, Hauptteil, Schluss — Stichpunkte reichen (meist) aus, aber auch nicht nur ja/nein. • Keine Gruppenabgaben, kein Kopieren aus Wikipedia, . . . (Quellenangabe)! • Abgaben bis Montag, 10:00 Uhr per EST, nicht handschriftlich, auch keine Scans! Nutzen Sie auch die Literatur im StudOn und in der Bibliothek! Feiertage im Semester Do, 14.05 Himmelfahrt auf andere Termine verteilen Di, 26.05 – Mi, 27.05 Pfingsten fällt aus Do, 04.06 Fronleichnam fällt aus Aufgabe 1: In der Vorlesung wurden unterschiedliche Definitionen für den Begriff „Rechnerarchitektur“ genannt. Was ist die grundlegende Idee, die allen Definitionen gemeinsam ist, und welchen Vorteil bietet diese? Rechnerarchitektur Aufgabe 2: Nennen Sie die sieben wesentlichen Eigenschaften des von-Neumann’schen Universalrechenautomaten, und überlegen Sie sich, in welcher Form sie in heutigen PCs zu finden sind. URA Aufgabe 3: Assembler a) Wo findet man Informationen über die unterstützten Befehle und Funktionen eines Prozessors? ÜGRa 1 Informatik 3, FAU Blatt 0: Rechnerarchitektur, URA, Assembler, Zahlendarstellung SS2015 b) Welche Schritte sind nötig, um ein Hochsprachenprogramm in eine vom Prozessor ausführbare Form zu bringen? c) Schreiben Sie ein C-Programm, das zwei Variablen a, b als Kommandozeilenparameter übergeben bekommt und a2 + 2ab + b2 berechnet. d) Wie könnte passender (AT&T)-Assemblercode der eigentlichen Berechnung aussehen? e) Gehen Sie die einzelnen Übersetzungsschritte für das C-Programm durch und analysieren Sie das jeweilige Zwischenergebnis. Vergleichen Sie das Ergebnis des Compilers mit dem selbst geschriebenen. f) Wo können für den Prozessor Rechenoperanden abgelegt werden? Welchen Vorteil bieten die verschiedenen Arten jeweils? Wie werden sie jeweils im generierten Assemblercode adressiert? Aufgabe 4: Geben Sie die folgenden Zahlen jeweils in den Systemen binär, dezimal, hexadezimal an: 210 , 0x16, 4210 , 3FF16 , 1001 11002 , 409610 , 232 10 , 2016 Aufgabe 5: Wie können negative Zahlen im Rechner codiert werden? Aufgabe 6: Führen Sie die folgenden ganzzahligen, vorzeichenlosen Rechenoperationen durch. Überlegen Sie sich anschließend, wie durch Umwandlung in andere Zahlensysteme die Berechnung besonders einfach durchgeführt werden kann. 0x5f · 0x2 0x132 / 0x2 0x65 · 0x4 0xc3 / 0x4 ÜGRa 2 Informatik 3, FAU Zahlendarstellung Blatt 0: Rechnerarchitektur, URA, Assembler, Zahlendarstellung SS2015 Bonusaufgaben: Aufgabe 7: 5 Punkte a) Warum ist es möglich, fertig übersetzte Software auf verwandten Architekturen auszuführen (bspw. Intel Core M, Intel Core i7, AMD FX), obwohl sich deren Geschwindigkeit und interne Realisierung deutlich unterscheiden kann? 2 P unkte Rechnerarchitektur b) Ordnen Sie die folgenden Aussagen über einen Prozessor jeweils entweder der Befehlsarchitektur oder der Endoarchitektur (nach Ungerer) zu. 1. Ein Universalregister ist 64 Bit breit. 2. Es stehen 16 Universalregister für arithmetische Operationen zur Verfügung. 3. Die Division dauert 15 Taktzyklen. 4. Der Prozessor ist in 22-nm-Technologie gefertigt. 5. Das Ergebnis einer Multiplikation wird in den Registern EDX und EAX gespeichert. 6. Fließkommabefehle werden intern durch Integerarithmetik emuliert. 3 P unkte Aufgabe 8: 10 Punkte a) Was muss man als Programmierer tun, wenn die verfügbaren Rechenregister nicht für alle nötigen Zwischenergebnisse ausreichen? 2 P unkte b) Die Intel-x86-Architektur kennt 22 verschiedene Codierungen einer einfachen Addition1 . Geben Sie Beispiele, worin sie sich unterscheiden. Welchen Vorteil hat es, spezielle Befehls-/Operandenkombinationen (z.B. ADD EAX, imm32, also Register(eax) + 32-Bit Unmittelbarer Operand) zu integrieren? 2 P unkte c) Schreiben Sie ein Assemblerprogramm, das den folgenden Term berechnet, ohne ihn vorher zu optimieren: c = u3 − 15vt + t2 − 66 Verwenden Sie als Register %eax,%ebx,.... Die Variablen c,u,v,t liegen im Arbeitsspeicher. Es stehen die Operationen movl, addl, subl, imull zur Verfügung, die jeweils zwei Operanden erwarten, von denen jedoch nur maximal einer eine Variable im Speicher sein darf. 1 http://www.intel.com/content/dam/www/public/us/en/documents/manuals/ 64-ia-32-architectures-software-developer-manual-325462.pdf S. 521 ÜGRa 3 Informatik 3, FAU Assembler Blatt 0: Rechnerarchitektur, URA, Assembler, Zahlendarstellung SS2015 Der Befehl addl %eax, %ecx addiert bspw. den Inhalt der Register eax und ecx und speichert das Ergebnis in ecx. Alternativ können auch Konstanten als Quelloperand verwendet werden. imull $5, %edx multipliziert den Inhalt des Registers edx mit 5, movl $1, %eax speichert den Zahlenwert 1 im Register eax. Versuchen Sie, unnötig viele Operationen zu vermeiden! 5 P unkte d) Wie viele Zugriffe auf Operanden im Arbeitsspeicher finden bei der Ausführung des Programms statt? Das Laden der Befehle selbst soll also nicht gezählt werden. ÜGRa 4 1 P unkt Informatik 3, FAU
© Copyright 2025 ExpyDoc