[gesichtete Version] | [gesichtete Version] |
(LOOP2 Upgrade) |
|||
Zeile 5: | Zeile 5: | ||
<p> | <p> | ||
<loop_area type="task"> | <loop_area type="task"> | ||
<loop_task title="ADD im Einadressformat"> | <loop_task title="ADD im Einadressformat" id="5fa97843401c4"> | ||
<p> | <p> | ||
Der Assembler-Befehl ADD benötigt für seine Ausführung zwei Werte, welche addiert werden sollen. Wird dieser Befehl im Einadressformat angegeben, so wird nur ein Operand spezifiziert. Über diesen einen Operanden bekommt der ADD-Befehl also einen der beiden zu addierenden Werte. | Der Assembler-Befehl ADD benötigt für seine Ausführung zwei Werte, welche addiert werden sollen. Wird dieser Befehl im Einadressformat angegeben, so wird nur ein Operand spezifiziert. Über diesen einen Operanden bekommt der ADD-Befehl also einen der beiden zu addierenden Werte. | ||
Zeile 23: | Zeile 23: | ||
<p> | <p> | ||
<loop_area type="task"> | <loop_area type="task"> | ||
<loop_task title="Dreiadressformat"> | <loop_task title="Dreiadressformat" id="5fa97843401cf"> | ||
<p> | <p> | ||
Werden Assembler-Befehle im Dreiadressformat angegeben, so definiert die Reihenfolge der anzugebenden Operanden ihre jeweilige Bedeutung. | Werden Assembler-Befehle im Dreiadressformat angegeben, so definiert die Reihenfolge der anzugebenden Operanden ihre jeweilige Bedeutung. | ||
Zeile 38: | Zeile 38: | ||
<p> | <p> | ||
<loop_area type="task"> | <loop_area type="task"> | ||
<loop_task title="Entwicklung eines Befehlssatzes"> | <loop_task title="Entwicklung eines Befehlssatzes" id="5fa97843401d7"> | ||
<p> | <p> | ||
Ein kompletter Befehl (Opcode und Operand) vom Typ NOOP, LOAD, STORE, ADD, SUB, EQUAL, JUMP und HALT besteht derzeit (wie im [http://youtu.be/cX5XLc9e_g4 Video] erläutert) aus insgesamt 16 Bit, wobei die ersten sechs Bit als Reserve nicht genutzt werden. | Ein kompletter Befehl (Opcode und Operand) vom Typ NOOP, LOAD, STORE, ADD, SUB, EQUAL, JUMP und HALT besteht derzeit (wie im [http://youtu.be/cX5XLc9e_g4 Video] erläutert) aus insgesamt 16 Bit, wobei die ersten sechs Bit als Reserve nicht genutzt werden. | ||
Zeile 62: | Zeile 62: | ||
<p> | <p> | ||
<loop_figure title="Abbildung zu Aufgabe 1" description="" copyright="CC-BY" index=true show_copyright=true>[[Datei:Aufgabe_befehlssatz.jpg]]</loop_figure></p> | <loop_figure title="Abbildung zu Aufgabe 1" description="" copyright="CC-BY" index=true show_copyright=true id="5fa97843401df">[[Datei:Aufgabe_befehlssatz.jpg]]</loop_figure></p> | ||
<p> | <p> | ||
Zeile 87: | Zeile 87: | ||
<p> | <p> | ||
<loop_area type="task"> | <loop_area type="task"> | ||
<loop_task title="Adressierungen des Hauptspeichers"> | <loop_task title="Adressierungen des Hauptspeichers" id="5fa97843401e6"> | ||
<p> | <p> | ||
Erläutere für den Zugriff auf den Hauptspeicher (Speicherwerk) die Unterschiede zwischen der effektiven Adresse und der indizierten Adressierung mit Verschiebung. | Erläutere für den Zugriff auf den Hauptspeicher (Speicherwerk) die Unterschiede zwischen der effektiven Adresse und der indizierten Adressierung mit Verschiebung. | ||
Zeile 99: | Zeile 99: | ||
<p> | <p> | ||
<loop_area type="task"> | <loop_area type="task"> | ||
<loop_task title="Adressierungsarten"> | <loop_task title="Adressierungsarten" id="5fa97843401ef"> | ||
<p> | <p> | ||
Welche Bedeutungen haben die folgenden Befehle: | Welche Bedeutungen haben die folgenden Befehle: | ||
Zeile 115: | Zeile 115: | ||
<p> | <p> | ||
<loop_area type="task"> | <loop_area type="task"> | ||
<loop_task title="Prozess"> | <loop_task title="Prozess" id="5fa97843401f5"> | ||
<p> | <p> | ||
Definiere den Begriff "Prozess". | Definiere den Begriff "Prozess". | ||
Zeile 128: | Zeile 128: | ||
<p> | <p> | ||
<loop_area type="task"> | <loop_area type="task"> | ||
<loop_task title="Von-Neumann vs. Harvard"> | <loop_task title="Von-Neumann vs. Harvard" id="5fa97843401fc"> | ||
<p> | <p> | ||
Skizziere die Von-Neumann-Architektur sowie die Harvard-Architektur und erläutere anhand einiger Worte den grundlegenden Unterschied beider Architekturen! | Skizziere die Von-Neumann-Architektur sowie die Harvard-Architektur und erläutere anhand einiger Worte den grundlegenden Unterschied beider Architekturen! |
Der Assembler-Befehl ADD benötigt für seine Ausführung zwei Werte, welche addiert werden sollen. Wird dieser Befehl im Einadressformat angegeben, so wird nur ein Operand spezifiziert. Über diesen einen Operanden bekommt der ADD-Befehl also einen der beiden zu addierenden Werte.
Woher bekommt der ADD-Befehl (im Einadressformat) den zweiten zu addierenden Wert?
Wohin schreibt der ADD-Befehl (im Einadressformat) sein berechnetes Ergebnis?
Werden Assembler-Befehle im Dreiadressformat angegeben, so definiert die Reihenfolge der anzugebenden Operanden ihre jeweilige Bedeutung.
Erläutere diese Bedeutung anhand eines selbstgewählten Beispiels!
Ein kompletter Befehl (Opcode und Operand) vom Typ NOOP, LOAD, STORE, ADD, SUB, EQUAL, JUMP und HALT besteht derzeit (wie im Video erläutert) aus insgesamt 16 Bit, wobei die ersten sechs Bit als Reserve nicht genutzt werden.
Entwickle einen Befehlssatz,
Aus wie vielen Bit besteht damit ein kompletter Befehl (Opcode und Operand) dieses neuen Befehlssatzes mindestens?
Gebe das SUM-Program aus dem Video damit an! Herauskommen sollte eine Übersicht wie diese, angepasst an den neuen Befehlssatz:
Erwartet wird also, dass das SUM-Programm sowohl in Maschinensprache (Einsen und Nullen!), als auch in Assembler angegeben wird. Der Additionsbefehl mit drei Operanden könnte in Assembler so aussehen:
ADD ACC, ACC, 14
"ACC" bezeichnet das Register Akkumulator, die Bedeutung des Befehls ist damit: Addiere den im Akkumulutar gespeicherten Wert und den in Speicherzelle 14 gespeicherten Wert, und lege das Ergebnis im Akkumulator ab.
Wie löst du das Problem, dass in der binären Codierung (Maschinensprache) unterschieden werden muss, ob ein Operand ein Register, eine Speicherzelle oder gar einen konkreten Wert bezeichnet? (Stichwort: # im Video. Falls du hier Hilfe benötigst, so diskutiere Lösungsansätze in deiner Lerngruppe!)
Erläutere für den Zugriff auf den Hauptspeicher (Speicherwerk) die Unterschiede zwischen der effektiven Adresse und der indizierten Adressierung mit Verschiebung.
Welche Bedeutungen haben die folgenden Befehle:
Definiere den Begriff "Prozess".
Skizziere die Von-Neumann-Architektur sowie die Harvard-Architektur und erläutere anhand einiger Worte den grundlegenden Unterschied beider Architekturen!
Diese Seite steht unter der Creative Commons Namensnennung 3.0 Unported Lizenz http://i.creativecommons.org/l/by/3.0/80x15.png