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