Du befindest dich hier: FSI Informatik » jahrgaenge » 2006 » "Muster"-Lösungen » "Muster"-Lösungen zu Klausuren aus Technische Informatik 2 » Aufgabe 1
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige ÜberarbeitungVorherige ÜberarbeitungNächste Überarbeitung | Vorherige ÜberarbeitungNächste ÜberarbeitungBeide Seiten, nächste Überarbeitung | ||
jahrgaenge:2006:loesungen:technische_informatik_2:sep2006 [20.09.2007 19:01] – 84.147.172.43 | jahrgaenge:2006:loesungen:technische_informatik_2:sep2006 [21.09.2007 13:31] – 87.234.153.214 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
==== Aufgabe 1 ==== | ==== Aufgabe 1 ==== | ||
- | * 1) 1, 2 , 1, 2, 1, 1, 1, 1 | + | * 1) w, f , f, f, w, w, w, w |
- | * 2) 1, 1, 2, 1, 2, 1, 2, 2 | + | * 2) w, w, f, w, f, w, f(edit: zero-bit hat nichts mit rechten zu tun), f(edit: |
- | * 3) mov für Speicherzugriff; | + | * 3) mov für Speicherzugriff; |
- | * 4) ? | + | * 4) Die Behandlung eines Interrupts darf nicht durch einen anderen Interrupt unterbrochen werden, da sie nicht neu aufgesetzt werden kann. |
==== Aufgabe 2 ==== | ==== Aufgabe 2 ==== | ||
+ | 1. | ||
* A E X | * A E X | ||
* A E X | * A E X | ||
* A X E | * A X E | ||
* A X E | * A X E | ||
- | * AE AE AE | + | * EA EA EA |
* A E E | * A E E | ||
* E X A | * E X A | ||
+ | |||
+ | 2. Da gibt's bestimmt eine schöne Zeichnung im Skript. | ||
+ | * Eingänge: IOR, IOW, Adressbus | ||
+ | * Ein-/ | ||
+ | * Fest: Adresse des Geräts | ||
+ | * Adresse am Adressbus wird durch Komparator mit Geräteadresse verglichen. Ausgang des Komparators wird verundet mit IOR (-> Leitung zu Sensor) und IOW (-> Leitung zu Aktor). | ||
+ | * Sensor hat Ausgang auf Datenbus, Aktor Eingang von Datenbus. | ||
==== Aufgabe 3 ==== | ==== Aufgabe 3 ==== | ||
- | * 1) 2^16 adressen, an jeder adresse liegen 8 bit; 2^16 * 8bit = 64 KB; -48 KB für programm | + | * 1) |
+ | | ||
+ | | ||
+ | 16 kB / 16 Bytes = 1024 | ||
- | * 2) 20kb | + | * 2) Neue Strukturgröße: |
* 3) | * 3) | ||
Zeile 42: | Zeile 53: | ||
==== Aufgabe 4 ==== | ==== Aufgabe 4 ==== | ||
- | * 1) tanx -> taylor reihe; div -> newton-raphson | + | * 1) tanx -> Taylorreihe; div -> Newton-Rphson |
* 2) (steht nirgends schnell): | * 2) (steht nirgends schnell): | ||
Zeile 55: | Zeile 66: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | Das funktioniert so nicht. Hierbei muss immer geshiftet werden. | ||
+ | Am besten ein Beispiel rechnen und dann sieht man es. | ||
==== Aufgabe 5 ==== | ==== Aufgabe 5 ==== | ||
Zeile 89: | Zeile 103: | ||
pushl %ebx | pushl %ebx | ||
call fibo | call fibo | ||
- | subl $4, %esp | + | addl $4, %esp |
movl %eax, %ecx | movl %eax, %ecx | ||
subl $1, %ebx | subl $1, %ebx | ||
pushl %ebx | pushl %ebx | ||
call fibo | call fibo | ||
- | subl $4, %esp | + | addl $4, %esp |
addl %ecx, %eax | addl %ecx, %eax | ||
ret | ret | ||
</ | </ | ||
+ | |||
+ | Das funktioniert so nicht... Wegen der tiefen Rekursion werden die Register immer wieder ueberschrieben. Man muss hierbei den Stack verwenden, in em da das Zwischenergebnis gespeichert wird. | ||
+ | |||
+ | Ich denke, bei call werden die Register gesichert und bei ret wiederhergestellt. Ist das nicht gerade der Unteschied zu iret? | ||
==== Aufgabe 6 ==== | ==== Aufgabe 6 ==== |