HTW Mittweida Mittweida, 20

Werbung
Hochschule Mittweida
Lehrgruppe Mikroprozessortechnik
Probeklausur
Zeit:
Unterlagen:
Punktzahl:
90 Minuten
1 Blatt A4 beidseitig handschriftlich, Befehlsliste 8086,
Taschenrechner
30
Achtung! Alle Programme sind in 8086-Assembler zu schreiben und zu
kommentieren.
1.
[3 Punkte]
Gegeben sind folgende Programmzeilen:
MOV AX,3AF6H
AND AH,0C5H
SUB AL,8EH
Geben Sie den Zustand der Flags C, Z und S jeweils nach dem zweiten und
dritten Befehl an.
2.
[3 + 2 Punkte]
Gegeben sei folgendes Programmfragment, welches ein Unterprogramm
aufruft:
0100H
0103H
0106H
0300H
0302H
0304H
0307H
0308H
......
MOV
CALL
…
UP_300H:
PUSH
MOV
SUB
PUSH
MOV
SP,1000H
UP_300H
BP
BP,SP
SP,6
AX
AX,[BP+d]
; rufe Unterprogramm auf
; rette alten Basepointer
; reserviere lokale Variable
; rette AX
.....
a) Skizzieren Sie den Aufbau des Stacks zum Zeitpunkt der Ausführung des
Befehls auf Adresse 0308H! Tragen Sie die Adressen an die Komponenten
an. Markieren Sie die Rückkehradresse.
b) Welcher Zahlenwert steht in diesem Moment in den Registern SP und
BP?
3.
[4 Punkte]
Eine CPU mit einem durchschnittlichen CPI von 0,4 wird in einem
Rechnersystem eingesetzt, dessen Hauptspeicher 10 Waitstates benötigt. Um
dies abzumildern verfügt das System über einen Cache, der eine Trefferrate
von 99 % erreicht. Je Befehl benutzt die CPU im Mittel 1,6 Speicherzugriffe.
Wie viele Befehle kann dieses System bei einer Taktfrequenz von 2,5 GHZ
pro Sekunde bearbeiten?
Bitte wenden!
4.
[2 + 3 + 2 + 2 + 2 Punkte]
Beantworten Sie möglichst knapp und aussagekräftig folgende Fragen:
a) Was versteht man unter einer indirekten Adressierung? Nenne ein
Beispiel.
b) Nenne drei Ereignisse, die dazu führen, dass eine CPU in den
Supervisor-Modus versetzt wird!
c) Erläutere wie die Zuordnung zwischen Interruptquelle und Startadresse
der ISR bei einem vektorisiertem Interruptsystem erfolgt.
d) Nenne mindestens zwei Situationen in denen die komplette Sperrung von
Interrupts notwendig ist (Begründe die Notwendigkeit)!
e) Skizziere die Zerlegung der 24-Bit Adresse für einen direct-mapped
Cache mit 256 Cachelines zu je 512 Einträgen. Gib die Breite der
jeweiligen Felder an.
5.
[7 Punkte]
Im Speicher sei eine Tabelle definiert, die einige Vergleichswerte (weniger als
256) enthält und mit dem Wert 0FFFFH als Endekennung abgeschlossen
wird.
Table:
DW
12A4H
DW
23FFH
.....
DW
0FFFFH
Schreiben Sie ein Unterprogramm SUCHE, welches einen im Register AX
übergebenen Wert in der Tabelle sucht. Wird der Wert gefunden, ist in AL die
Positionsnummer des gefundenen Wertes zurückzugeben und das C-Flag ist
gelöscht. Wird der Wert nicht gefunden, ist das C-Flag gesetzt und der Wert
in AL ist beliebig. Andere Register sollen unverändert bleiben.
Herunterladen