Aufgrund einer Wartung wird GitLab am 17.08. zwischen 8:30 und 9:00 Uhr kurzzeitig nicht zur Verfügung stehen. / Due to maintenance, GitLab will be temporarily unavailable on 17.08. between 8:30 and 9:00 am.

Commit ad3771df authored by Martin Kröning's avatar Martin Kröning

9.3: Perform static linking

parent 32353bcd
......@@ -69,3 +69,34 @@ Die Objektdatei aus der vorherigen Übung soll nun zu einem Programm gebunden w
```
3. Die Objekte sollen nun anders gebunden werde. Das Programm soll dabei nur noch aus einer Objektdatei `cntdwn.o` bestehen, die keine überflüssigen Symbole enthält. Geben Sie die notwendigen Schritte an und skizzieren Sie den Aufbau der Objektdatei.
Use static linking. Patch used extenal symbols into the object and do relocation.
```diff
-H|cntdwn|00000000|00000094
-R|printf|exit
+H|cntdwn|00000000|000001ce
D|main|00000000
-S|.text|00000000|0000007d|.data|0000007d|00000017
+S|.text|00000000|000001b7|.data|000001b7|00000017
T|00000000|0c|0540 0c4050 02500100000004
T|0000000c|19|0c100100000039 0c4501fffffffc00000030 0a1045fffffffc
T|00000025|13|0b0100000028 0c02c000000013 050100000000
-T|00000038|0f|080100000000 01500100000004 0410
+T|00000038|0f|08010000007d 01500100000004 0410
T|00000047|0f|0701ffffffd7 01500100000004 0640
-T|00000056|13|050100000000 080100000000 01500100000004
+T|00000056|13|050100000000 080100000167 01500100000004
T|00000069|14|0c000100000001 0c100100000000 0d0100000080
-T|0000007d|17|48656c6c6f20576f726c642120656278203d203f0d0a00
+T|0000007d|ea| ; printf
+T|00000167|50| ; exit
+T|000001b7|17|48656c6c6f20576f726c642120656278203d203f0d0a00
M|0000002e|0004|+|.data
M|00000034|0004|+|.data
-M|0000003a|0004|+|printf
-M|0000005e|0004|+|exit
+M|0000003a|0004|+|.text
+M|0000005e|0004|+|.text
E
```
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment