summaryrefslogtreecommitdiff
path: root/ws2015/oss/blaetter/01/abgabe.md
blob: 405ab62865a796f8b6e03bba017814fd41ce470f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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