diff options
author | Gregor Kleen <gkleen@yggdrasil.li> | 2015-11-13 23:45:26 +0000 |
---|---|---|
committer | Gregor Kleen <gkleen@yggdrasil.li> | 2015-11-13 23:45:26 +0000 |
commit | ab9484b343abd995cba915bb0ba4be8907dfa6ec (patch) | |
tree | f441968094bec070499d24e45e8a29f1315da1f4 /ws2015/oss/blaetter/01 | |
parent | 14dc76bda755c850f859a4b974c793e694f2b0b4 (diff) | |
download | uni-ab9484b343abd995cba915bb0ba4be8907dfa6ec.tar uni-ab9484b343abd995cba915bb0ba4be8907dfa6ec.tar.gz uni-ab9484b343abd995cba915bb0ba4be8907dfa6ec.tar.bz2 uni-ab9484b343abd995cba915bb0ba4be8907dfa6ec.tar.xz uni-ab9484b343abd995cba915bb0ba4be8907dfa6ec.zip |
Shorter lecture names
Diffstat (limited to 'ws2015/oss/blaetter/01')
-rw-r--r-- | ws2015/oss/blaetter/01/abgabe.md | 27 |
1 files changed, 27 insertions, 0 deletions
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 @@ | |||
1 | # Aufgabe 4 -- Realisierung von Unterprogrammen | ||
2 | |||
3 | a) | ||
4 | - Code duplication -- Etwaige spätere Änderungen müssen manuell an alle Stellen kopiert werden. | ||
5 | - Argumente müssen manuell an jede Stelle eingepflegt werden. | ||
6 | 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. | ||
7 | c) | ||
8 | - Die Parameter können auf den Stack gepusht werden, bevor in das Unterprogramm gesprungen wird. | ||
9 | - Manche Maschinen bieten spezielle Register für diesen Zweck. | ||
10 | d) Während der Ausführung unterhält die Maschine ein Register, das die Adresse des nächsten auszuführenden Befehls enthält. | ||
11 | Diese kann beliebig überschrieben werden. | ||
12 | e) | ||
13 | `JMP` | ||
14 | ~ überschreibt nur das Adress-Register. | ||
15 | |||
16 | `CALL` | ||
17 | ~ speichert vor dem Überschreiben des Adressregisters noch eine Adresse an die, nach Ausführung des Unterprogramms, in das gesprungen wird, zurückgesprungen werden soll. | ||
18 | f) `RET` muss so implementiert werden, dass es die Rücksprungadresse aus dem selben Register zu lesen versucht, in das `CALL` sie speichert. | ||
19 | `CALL` speichert die Adresse entweder in einem speziellen Register oder auf dem Stack. | ||
20 | |||
21 | # Aufgabe 5 -- Das Betriebssystem | ||
22 | |||
23 | a) $2^n \cdot m~\text{Byte}$ | ||
24 | b) Maschinensprache | ||
25 | c) Textverabeitung | ||
26 | d) Gerätetreiber | ||
27 | e) offene | ||