Klausurss01Loesung_2..

Transcrição

Klausurss01Loesung_2..
Klausur
Technische Grundlagen der Informatik
Prof. Dr. Arndt Bode
Sommersemester 2001
18. Mai 2001
Name:
___________________________________
Vorname:
___________________________________
Matrikelnummer:
______________________________
Geburtsdatum: ___________________________________
Hörsaal:
___________
Unterschrift:
Platz:
____________
___________________________________
Ergebnis:
Aufgabe
1
2
3
4
5
Ges.
Note
Punkte
Korrektur
---------------------------------------------------------------------------------------------------------Ich möchte, daß die Klausur nicht gewertet wird, streiche deshalb dieses Deckblatt durch und bestätige dies durch meine Unterschrift:
Unterschrift:
___________________________________
Hinweis zur Wertung:
Aufgrund der geänderten Prüfungsordnung gilt die Klausur erst durch die Abgabe als
angemeldet.
Andererseits sind wir gezwungen, alle Arbeiten, auch von Studierenden, die sich nicht
anmelden wollen, einzusammeln.
Um nun beiden Punkten gerecht zu werden, ist folgender Verfahrensweg einzuhalten:
1.
Falls Sie sich anmelden und die Klausur gewertet haben wollen:
Bitte kontrollieren Sie, ob alle Angaben stimmen und unterschreiben Sie nur im
oberen Bereich auf dem Deckblatt.
2.
Falls Sie sich nicht anmelden und die Klausur nicht gewertet haben wollen:
Bitte streichen Sie das Deckblatt mit einem Diagonalstrich durch und erklären mit einer zweiten Unterschrift im unteren Bereich des Deckblattes Ihre Nichtanmeldung.
In diesem Fall (Fall 2) wird die Arbeit nicht korrigiert!
Bitte beachten Sie, daß in beiden Fällen die unterschiedlichen Regelungen der Diplomprüfungsordnung und der Bachelor-Prüfungsordnung gelten.
- 2 -
Hinweise zu den Aufgaben:
-
Es sind keinerlei Hilfsmittel zugelassen, auch keine Taschenrechner.
-
Versehen Sie dieses Angabenblatt auf der Titelseite mit Ihrem Namen, Vornamen und Matrikelnummer.
-
Diese Angabe umfaßt 27 bedruckte Seiten. Außerdem erhalten Sie folgende
Beschreibungen:
Anlage I:
Rechnerorganisation und maschinennahe
Programmierung
38 Seiten
Anlage II:
Mikroprogrammierung
24 Seiten
Anlage III:
Kurzbeschreibung VHDL
15 Seiten
-
Alle Lösungen sind in dieses Heft einzutragen. Sollte der vorgesehene Platz
nicht ausreichen, so finden Sie am Ende weitere Blätter. Sollten diese auch
nicht ausreichen, so wenden Sie sich bitte an die Aufsichten.
-
Notizpapier wird auf Ihre Anfrage ausgegeben. Die Verwendung von eigenem
Papier ist nicht gestattet.
-
Bei allen Multiple-Choice-Aufgaben sind alle richtigen (und nur die richtigen!)
Antworten anzukreuzen.
Aufgaben:
Aufgabe 1:
Schaltungslogik
Aufgabe 2:
Rechnergestützter Schaltungsentwurf
Aufgabe 3:
Maschinennahe Programmierung
Aufgabe 4:
Mikroprogrammierung
Aufgabe 5:
Grundwissen
- 3 -
Aufgabe 1
Schaltungslogik
Es sind zwei Zahlen A (A0,A1) und B (B0,B1), Index 0 für das niederwertige, 1 für das
höherwertige Bit, mithilfe eines Subtrahierers und einer zu entwickelnden Schaltung
zu vergleichen. Somit ergibt sich folgendes Blockschaltbild:
Das Ergebnis der Gesamtschaltung ist mit drei Ausgängen festzuhalten, die folgende
Bedeutung haben:
Ausgang
(A > B)
(A = B)
(A < B)
Zustand
=1
=1
=1
⇔
⇔
⇔
falls
A>B
A=B
A<B
A, B und A-B sind in den Tabellen jeweils in dekadischer Schreibweise, alle anderen
Werte in Bit-Darstellung angegeben.
Der Subtrahierer liefert als Ergebnis den Wert C (C0,C1) und den Übertrag Ü.
A
0
1
2
3
0
1
2
3
0
1
2
3
0
1
2
3
B
0
0
0
0
1
1
1
1
2
2
2
2
3
3
3
3
A-B
0
1
2
3
-1
0
1
2
-2
-1
0
1
-3
-2
-1
0
C0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
C1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
Ü
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
- 4 -
In den folgenden Teilaufgaben ist nun die Schaltung zu entwickeln, die aus dem Subtraktionsergebnis das Vergleichsergebnis liefert.
1.1.1 Ergänzen Sie folgende Wertetabelle:
A
0
1
2
3
0
1
2
3
0
1
2
3
0
1
2
3
B
0
0
0
0
1
1
1
1
2
2
2
2
3
3
3
3
A-B
0
1
2
3
-1
0
1
2
-2
-1
0
1
-3
-2
-1
0
C0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
C1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
Ü
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
A=B
1
0
0
0
0
1
0
0
0
0
1
0
0
0
0
1
A>B
0
1
1
1
0
0
1
1
0
0
0
1
0
0
0
0
A<B
0
0
0
0
1
0
0
0
1
1
0
0
1
1
1
0
1.1.2 Geben Sie die Funktion für A = B in Abhängigkeit von C1, C0 und Ü an:
(A = B) = ¬C0 ∧ ¬C1 ∧ ¬Ü ;
1.1.3 Geben Sie die Funktion für A > B in Abhängigkeit von C1, C0 und Ü an:
(A < B) = (C0 ∨ C1) ∧ ¬Ü ;
1.1.4 Geben Sie die Funktion für A < B in Abhängigkeit von C1, C0 und Ü an:
(A > B) = Ü;
1.2
Im zweiten Teil der Aufgabe soll nun ein RS-Flipflop gesetzt bzw. zurückgesetzt
werden, falls folgende Bedingungen gelten:
A - B ≥ 2:
RS-Flip-Flop zurücksetzen (S = 0; R = 1)
2 > A - B > -2:
keine Änderung am RS-Flip-Flop (S = 0; R = 0)
A - B ≤ -2:
RS-Flip-Flop setzen (S = 1; R = 0)
- 5 -
1.2.1 Ergänzen Sie folgende Wertetabelle indem Sie die Werte für S und R
nachtragen:
A
0
1
2
3
0
1
2
3
0
1
2
3
0
1
2
3
B
0
0
0
0
1
1
1
1
2
2
2
2
3
3
3
3
A-B
0
1
2
3
-1
0
1
2
-2
-1
0
1
-3
-2
-1
0
C0
0
1
0
1
1
0
1
0
0
1
0
1
1
0
1
0
C1
0
0
1
1
1
0
0
1
1
1
0
0
0
1
1
0
Ü
0
0
0
0
1
0
0
0
0
1
0
0
1
1
1
0
S
0
0
0
0
0
0
0
0
0
1
0
0
1
1
0
0
R
0
0
1
1
0
0
0
1
0
0
0
0
0
0
0
0
1.2.2 Stellen Sie die disjunktive Normalform für S in Abhängigkeit von C1, C0 und Ü
auf:
S=
(¬C0 ∧ C1 ∧ Ü) ∨ (C0 ∧ ¬C1 ∧ Ü) ;
Auch richtig:
(¬C0 ∧ C1 ∧ Ü) ∨ (C0 ∧ ¬C1 ∧ Ü) ∨ (¬C0 ∧ C1 ∧ Ü);
1.2.3 Ist es sinnvoll, bei der Ermittlung der Bool'schen Gleichung für R die konjunktive
Normalform zu verwenden?
O
ja, den für R ergeben sich unter Verwendung der konjunktiven Normalform weniger Ausdrücke als bei der disjunktiven Normalform
X
nein, den für R ergeben sich unter Verwendung der konjunktiven
Normalform mehr Ausdrücke als bei der disjunktiven Normalform
O
egal, da die Anzahl der Ausdrücke für R bei der Verwendung der konjunktiven Normalform gleich ist denen bei der disjunktiven Normalform
- 6 -
1.2.4 Leiten Sie die Funktion von R in Abhängigkeit von C1, C0 und Ü ab, minimieren
Sie diese und kreuzen Sie die richtige Antwort an. Falls mehere Antworten richtig sind, kreuzen Sie alle richtigen Antworten an.
O
R = C0 ∧ C1 ∧ Ü;
O
R = ¬C0 ∧ ¬C1 ∧ Ü;
O
R = ¬C0 ∧ C1 ∧ Ü;
O
R = ¬C0 ∧ C1 ∧ ¬Ü;
O
R = C0 ∧ ¬C1 ∧ Ü;
O
R = C0 ∧ ¬C1 ∧ ¬Ü;
O
R = C0 ∧ C1 ∧ ¬Ü;
O
R = ¬C0 ∧ ¬C1 ∧ ¬Ü;
O
R = C1 ∧ Ü;
O
R = C0 ∧ Ü;
X
R = C1 ∧ ¬Ü;
O
R = C0 ∧ ¬Ü;
O
R = ¬C1 ∧ Ü;
O
R = ¬C0 ∧ Ü;
O
R = ¬C1 ∧ ¬Ü;
O
R = ¬C0 ∧ ¬Ü;
O
R = C1 ∨ Ü;
O
R = C0 ∨ Ü;
O
R = C1 ∨ ¬Ü;
O
R = C0 ∨ ¬Ü;
O
R = ¬C1 ∨ Ü;
O
R = ¬C0 ∨ Ü;
O
R = ¬C1 ∨ ¬Ü;
O
R = ¬C0 ∨ ¬Ü;
Aufgabe 2
Rechnergestützter Schaltungsentwurf
Knight-Rider-Effekt
Im folgenden soll mit vier Lampen (L0, L1, L2, L3) ein "Knight-Rider"-Effekt erzielt
werden, d.h. ein von einem Takt CLK gesteuertes Lauflicht, das immer die Richtung
wechselt.
Zusätzlich soll es noch die Möglichkeit geben, das Lauflicht, das nach dem Anschalten
(RESET) zunächst noch keine Lampen ansteuert, mit einem START-Signal anzuschalten. Nach dem START-Signal ist das Lauflicht solange aktiv, bis es mit RESET
wieder abgeschaltet wird.
Es entsteht also folgende Zustandstabelle
- 7 -
Zustand L3
L2
L1
L0
0
Aus
Aus
Aus
Aus
1
Aus
Aus
Aus
An
2
Aus
Aus
An
Aus
3
Aus
An
Aus
Aus
4
An
Aus
Aus
Aus
5
Aus
An
Aus
Aus
6
Aus
Aus
An
Aus
7
Aus
Aus
Aus
An
Bedingung
nach/während RESET und solange START
nicht aktiv war
nach Start
Wiederholung ab 2
Jede steigende Flanke an CLK wechselt vom Zustand i zum Zustand i+1, nur RESET
hat eine Sofortwirkung.
2.1
Zeichnen Sie ein Zustandsübergangsdiagramm (Bubble/Blasendiagramm) dieses Automaten. Kennzeichnen Sie deutlich die Bedingungen, die zum Zustandswechsel führen, und die Ausgaben eines jeden Zustands.
Lösung:
- 8 -
2.2
Obiger Automat soll mit seinen Ein- und Ausgängen und seinem Verhalten in
VHDL nachgebildet werden.
2.2.1 Ergänzen sie die folgende Entity-Deklaration, halten Sie sich dabei an die vorgegebenen Signalnamen.
entity knight_rider is
port ( CLK: in STD_LOGIC;
RESET: in STD_LOGIC;
START: in STD_LOGIC;
L: inout STD_LOGIC_VECTOR (3 downto 0)
);
end knight_rider;
2.2.2 Um später einmal die Lampenanzahl einfach erhöhen zu können, und um etwas
Schreibarbeit zu sparen, werden in der Beschreibung des Automaten obige 7
Zustände nicht direkt nachgebildet, sondern das Verhalten (d.h. das "Schieben"
der Lampenausgänge) beschrieben, was allerdings noch eine Speicherung der
Schieberichtung benötigt.
Ergänzen Sie das folgende (teilweise kommentierte) VHDL-Gerüst der Implementierung des Knight-Rider-Automaten:
architecture so_gehts of knight_rider is
signal RICHTUNG: STD_LOGIC;
begin
process (CLK,RESET)
begin
if RESET='1' then
L<="0000";
RICHTUNG<='0';
elsif CLK'event and CLK='1' then
if START='1' and L="0000" then
L<="0001";
- 9 -
-- Anfangen...
elsif RICHTUNG=’0’ then
if L/="1000" then
-- noch nicht am
"Anschlag"
L(3 downto 1)<=L(2 downto 0);
-- nach links
Schieben
L(0)<=’0’;
else
L<= "0100";
-- wenden
RICHTUNG<=’1’;
end if;
else
if L/="0001" then
L(2 downto 0)<=L(3 downto 1);
L(3)<=’0’;
else
L<="0010";
RICHTUNG<=’0’;
end if;
end if;
end if;
end process;
end so_gehts;
Aufgabe 3
Maschinennahe Programmierung, 80x86 Assembler
Es ist ein 80x86 Programm zu entwickeln das feststellt ob eine natürliche Zahl n durch
eine andere natürliche Zahl k teilbar ist, d.h. ob n mod k = 0. k ist dabei eine Zweieri
potenz, d.h. ∃i ε Ν2 = k. Zur Darstellung von n und k werden 16 Bit breite ganze
Zahlen verwendet. Für das Weitere können Sie voraussetzen, daß n<32768 und
k≤128.
3.1
Aufruf eines Unterprogramms
Die Lösung soll als Unterprogramm teilt(n,k) realisiert werden. Nachfolgend ist das Gerüst des Unterprogramms sowie sein Aufruf dargestellt. Tragen
- 10 -
Sie in das Diagramm auf Seite 13 ein, wo sich im Keller (stack) folgende Informationen zum Zeitpunkt unmittelbar vor Ausführung des Befehls an der durch das
Label LA markierten Stelle befinden:
•
Rücksprungadresse (Wert: A956H)
•
Parameter n (Wert: 0400H)
•
Parameter k (Wert: 0080H)
Ein Feld im Diagramm entspricht einem Byte. Tragen Sie die oben genannten
Werte in das Speicherdiagramm ein.
;;
;;;
;;;
L1:
Code Fragment, das das Unterprogramm aufruft
mov
push
mov
push
call
cmp
je
ax, n
ax
ax, k
ax
teilt
ax, 0
nein
ja:
; n ist durch k teilbar
•
•
•
•
nein:
; n ist nicht durch k teilbar
•
•
•
•
;;; Unterprogramm teilt(n,k)
;;; Eingabeparameter n und k wie oben spezifiziert
teilt: push
mov
LA: mov
•
•
•
•
mov
pop
ret
bp
bp, sp
ax, [bp+4]
; Prolog
;Realisierung eigentlicher Code
;Aufgabe 3.3
sp, bp
bp
4
; Epilog
- 11 -
Adressen
0000H
0001H
0002H
0003H
BP
Little-Endian Byte-Ordnung:
niederwertiges Byte an niedriger Adresse
höherwertiges Byte an höherer Adresse
BP-alt.lsb
BP-alt.msb
56H
A9H
80H
00H
00H
04H
der im Programm gerettet alte Wert
des BasePointer, BP
die Rückkehradresse
der 2. Parameter, k
der 1. Parameter, n
FFFEH
FFFFH
3.2
Aufrufschnittstelle des Unterprogramms
Einige wesentliche Bestandteile der Aufrufschnittstelle sind im obigen Code-Fragment
und den Kommentaren nicht spezifiziert. Nennen Sie einen davon und ergänzen Sie
die Spezifikation soweit sich die fehlende Information aus der Verwendung des Unterprogramms erkennen läßt.
Lösung:
Aus dem Kommentar ist nicht ersichtlich, wie das Ergebnis übergeben wird.
Aus dem Fragment des aufrufenden Programms lässt sich aber schließen, dass
das Ergebnis im Register AX steht. Ist n durch k teilbar, wird in AX ein von Null
verschiedener Wert geliefert, andernfalls der Wert Null.
- 12 -
3.3
Realisierung des Unterprogramms
Realisieren Sie den im obigen Code-Fragment fehlenden Teil des Unterprogramms teilt(n,k) entsprechend der Spezifikation. Nutzen Sie die zugesicherten Eigenschaften des Parameters k für eine effiziente Implementierung.
Die Effizienz Ihrer Lösung geht in die Bewertung ein.
Hinweis:
Eine effiziente Lösung kommt ohne Multiplikations- und Divisionsbefehle aus.
Lösungsvorschlag:
i
n ist genau dann durch k = 2 teilbar, wenn die i-1 niedrigswertigen Stellen von n
Nulls sind. Dies wird überprüft durch UND-Verknüpfung von n mit k-1. k-1 hat an
den Bitpositionen i.....0 Einsen, sonst Nullen. Ist das Ergebnis der UND-Verknüpfung Null, so ist n durch k teilbar.
;;; Unterprogramm teilt (n,k)
;;; Eingabeparameter n und k wie oben spezifiziert
FALSE
True
EQU
EQU
0
0
teilt:
push
mov
mov
mov
bp
bp,
ax,
cx,
.LA:
dec
jz
and
cmp
je
.LNEIN: mov
jmp
.LJA:
mov
.EPILOG: mov
pop
ret
; Prolog
sp
[bp+4]
[bp+2]
cx
.LJA
ax, cx
ax, 0
.LJA
AX, FALSE
.Epilog
AX, TRUE
sp, bp
bp
4
;n
;k
; k=1 Í k teilt n
; Epilog
Noch einfacher wäre es geworden, wenn wir festgelegt hätten, dass der Wert
Null als Ergebnis geliefert wird, wenn n k teilt und ein von Null verschiedener
Wert ist.
Eine weitere Lösungsmöglichkeit ist, n und k in Registern schrittweise nach
rechts zu schieben, bis das '1' bit von k in Bitposition 0 angekommen ist. Tritt
dabei ein Übertrag beim Rechtsschieben von n auf, ist n nicht durch k teilbar.
- 13 -
Alternative Lösung:
;;; Unterprogramm teilt (n,k)
;;; Eingabeparameter n und k wie oben spezifiziert
FALSE
True
EQU
EQU
0
0
.LA:
mov
mov
cmp
je
shr
jc
shr
jmp
ax, [bp+4]
cx, [bp+2]
cx, 1
.LJA
ax, 1
.LNEIN
cx, 1
.L1
.L1:
.LNEIN:
mov
jmp
.LJA:
mov
.EPILOG: mov
pop
ret
AX, FALSE
.Epilog
AX, TRUE
sp, bp
bp
4
Aufgabe 4
;n
;k
; Epilog
Mikroprogrammierung
In der Anlage finden Sie die Beschreibung der mikroprogrammierbaren Maschine, die
ab dem WS 1993/94 in der Vorlesung "Technische Grundlagen der Informatik" und in
den Übungen behandelt worden ist.
Für diese mikroprogrammierbare Maschine sind auch die in den nachfolgenden Teilaufgaben spezifizierten Mikroprogramme zu schreiben.
Sie finden alle zur Lösung der Aufgabe notwendigen Angaben zu der mikroprogrammierbaren Maschine, wie die Beschreibung des Mikroinstruktionsformates und die
Funktionstabellen der Bausteine in der Anlage der Klausur.
Ihre Lösung tragen Sie in das auf Seite 18 und Seite 19 der Klausur-Angabe vorgegebene Formblatt ein. Bei Bedarf können Sie weitere Blätter anfordern. Kennzeichnen
Sie ungültige Lösungen deutlich!
Verwenden Sie für Ihre Mikroprogramme die in den Funktionstabellen und in der Beschreibung des Mikroinstruktionsformates angegebenen mnemotechnischen Namen.
In die Felder der Mikroinstruktion, deren Belegung für die korrekte Funktion unerheblich ist, tragen Sie jeweils ein "X" für "Don't Care" ein.
Das Mikroprogramm IFETCH, das den nächsten Maschinenbefehl in das Instruktionsregister lädt, den Befehlszähler inkrementiert und entsprechend dem Befehls-Opcode
das zugehörige Mikroprogramm anspringt, kann als gegeben betrachtet werden. Alle
Mikroprogramme müssen am Ende wieder zum Anfang des Mikroprogramms IFETCH
- 14 -
zurückspringen.
4.1.
Schreiben Sie ein Mikroprogramm, das den Maschinenbefehl OR RA,[RB] realisiert. Der Maschinenbefehl OR verknüpft zwei Operanden durch ein bitweises
logisches ODER. Der erste Operand ist das im RA-ADDR-Feld des Maschinenbefehls angebene Register. Der zweite Operand, in dem auch das Ergebnis der
Operation abgespeichert werden soll, ist eine Hauptspeicherzelle, deren Adresse in dem Register gespeichert ist, dessen Nummer im RB-ADDR-Feld des Maschinenbefehls gegeben ist.
4.1.1 Welche Adressierungsarten verwendet der Maschinenbefehl OR RA,[RB]?
_indirekte Registeradressierung___________________________________
__ direkte Registeradressierung___________________________________
4.1.2 Ergänzen Sie das Mikroprogramm auf den Seiten 18 und 19 und kommentieren
Sie die einzelnen Mikroinstruktionen. Platz für die Kommentierung ist im Formblatt auf den Seiten 18 und 19 vorgesehen.
4.1.3 Kann der Maschinenbefehl durch weniger als 4 Mikroinstruktionen implementiert
werden? Warum? (Bitte kurz fassen)
Dies ist nicht möglich, da man für einen Lese- bzw. Schreibzyklus immer
zwei Takte benötigt. Dies ergibt für diesen Befehl minimal vier Takte.
4.2.
Neben dem oben genannten Maschinenbefehl OR RA,[RB] kann nun auch
noch der Befehl MOV imm,RB als gegeben angesehen werden. Dieser kopiert
den unmittelbaren Operand imm in das im RB-ADDR-Feld des Maschinenbefehlswort gegebene Register.
Der Maschinenbefehl OR RA,[RB] habe den Opcode 47(hex), der Befehl MOV
imm, RB den Opcode 22(hex).
Es soll ein Maschinenprogramm geschrieben werden, das in der Hauptspeicherzelle 100(hex) das niedrigstwertige Bit setzt.
Vervollständigen Sie das unten im Hexadezimalcode angegebene Maschinenprogramm!
Adresse
Inhalt
0050
0051
0052
0053
2201
0100
2202
0054
0001
4721
- 15 -
- 16 -
Aufgabe 5
Kreuzen Sie bei den folgenden Aufgaben nur die richtigen und alle richtigen Antworten
an!
5.1
Geben Sie drei in ihrer Art unterschiedliche Beschreibungsformen für einen
Rechner an.
{Prosa und Blockschaltbild}
{Programmiersprachen, Pascal, C}
{Beschreibungssprachen (VHDL, HDL, CDL)}
5.2
Geben Sie die funktionalen Schichten beim Rechner an:
Benutzerprogrammschicht
von Neumann-Schicht
Mikroarchitekturschicht
Gatterschicht
Bauelementeschicht
Physikalische Schicht
5.3
Bei einer Mikromaschine (Register-Transfer-Maschine) gilt:
5.3.1 Eine Mikromaschine interpretiert die Maschinenbefehle der von-NeumannSchicht durch Mikroprogramme?
X
ja
O
nein
5.3.2 Mikroinstruktionen können Teile von Mikroprogrammen sein?
X
ja
O
- 17 -
nein
5.3.3 Mikroinstruktionen bestehen aus einer Menge von Mikrooperationen?
X
ja
O
nein
5.3.4 Mikrooperationen können nur parallel ausgeführt werden?
O
5.4
5.5
ja
nein
Kreuzen Sie diejenigen Felder an, aus denen ein Mikroinstruktionsformat besteht.
O Sequencer
X Steuerteil
O ALU
X Direktdatenteil
O Hauptspeicher
O Adreßgenerator
O CPU
X Adreßteil
O Adreßbus
Welche der aufgeführten Mikroinstruktionsformate benötigen nicht unbedingt
zusätzliche Dekoder?
X Horizontal
5.6
X
O Quasihorizontal
O Vertikal
Zählen Sie die Funktionseinheiten (Werke) einer CPU bei einem Rechner nach
dem von Neumann – Prinzip auf.
Hauptspeicher
Leitwerk
Rechenwerk
Ein/Ausgabewerk
- 18 -
5.7
Kreuzen Sie die richtigen Aussagen bei einem Rechner nach dem von NeumannPrinzip an.
5.7.1 Programm und Daten stehen in
X
demselben
O
unterschiedlichen
Speicher(n).
5.7.2 Der Hauptspeicher besteht aus Zellen
X
gleicher
O
unterschiedlicher
O
nur unbedingte
Größe.
5.7.3 Es gibt
O
nur bedingte
X
bedingte und unbedingte
Sprünge.
5.8
Bei welchem der folgenden Schaltungstypen ist keine Zwischenspeicherung von
Daten gegeben?
X
5.9
Schaltnetze
O
Schaltwerke
Kreuzen Sie die Bauteile an, bei denen keine Negation vorhanden ist.
X
UND
X
Oder
O
NAND
O
ALU
- 19 -
O
Not
5.10 EPRoms werden verwendet als
X Programmspeicher
O Arbeitsspeicher
O Massenspeicher
5.11 Fragen zur 8086 - CPU
5.11.1
Der Befehl "JMP 1234H" springt nicht über Codesegmentsgrenzen hinweg.
O
5.11.2
X
nein
ja
O
nein
ja
O
nein
Die Datenstruktur-Semantik beim Stack gleicht einem LIFO.
X
5.11.5
ja
Beim "SHR"-Befehl kommt das niedrigstwertige Bit, das rechts herausgeschoben wird, ins Carry-Flag.
X
5.11.5
nein
Bei einem 8086 ist ein Speichersegment maximal 64 kB groß.
X
5.11.4
X
Der "MUL"-Befehl des 8086 legt sein Ergebnis im BX-Register ab.
O
5.11.3
ja
ja
O
nein
Ein Unterprogrammaufruf übergibt Funktionsargumente.
O
ja
X
- 20 -
nein