From ab9484b343abd995cba915bb0ba4be8907dfa6ec Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Fri, 13 Nov 2015 23:45:26 +0000 Subject: Shorter lecture names --- ws2015/oss/blaetter/01/abgabe.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 ws2015/oss/blaetter/01/abgabe.md (limited to 'ws2015/oss/blaetter/01/abgabe.md') diff --git a/ws2015/oss/blaetter/01/abgabe.md b/ws2015/oss/blaetter/01/abgabe.md new file mode 100644 index 0000000..405ab62 --- /dev/null +++ b/ws2015/oss/blaetter/01/abgabe.md @@ -0,0 +1,27 @@ +# Aufgabe 4 -- Realisierung von Unterprogrammen + +a) + - Code duplication -- Etwaige spätere Änderungen müssen manuell an alle Stellen kopiert werden. + - Argumente müssen manuell an jede Stelle eingepflegt werden. +b) Die Kosten der Befehle für das Springen ins Unterprogramm und das kopieren der Argumente/Return-Values können groß sein gegen die Kosten des Unterprogramms. +c) + - Die Parameter können auf den Stack gepusht werden, bevor in das Unterprogramm gesprungen wird. + - Manche Maschinen bieten spezielle Register für diesen Zweck. +d) Während der Ausführung unterhält die Maschine ein Register, das die Adresse des nächsten auszuführenden Befehls enthält. + Diese kann beliebig überschrieben werden. +e) + `JMP` + ~ überschreibt nur das Adress-Register. + + `CALL` + ~ speichert vor dem Überschreiben des Adressregisters noch eine Adresse an die, nach Ausführung des Unterprogramms, in das gesprungen wird, zurückgesprungen werden soll. +f) `RET` muss so implementiert werden, dass es die Rücksprungadresse aus dem selben Register zu lesen versucht, in das `CALL` sie speichert. + `CALL` speichert die Adresse entweder in einem speziellen Register oder auf dem Stack. + +# Aufgabe 5 -- Das Betriebssystem + +a) $2^n \cdot m~\text{Byte}$ +b) Maschinensprache +c) Textverabeitung +d) Gerätetreiber +e) offene -- cgit v1.2.3