Системски софтвер/Септембар 1 2025 — разлика између измена
Пређи на навигацију
Пређи на претрагу
(костур остатка странице) |
|||
| Ред 78: | Ред 78: | ||
| 6 || R_X86_64_32 || 2 || 18 | | 6 || R_X86_64_32 || 2 || 18 | ||
|} | |} | ||
== 2. задатак == | |||
=== Поставка === | |||
=== Решење === | |||
== 3. задатак == | |||
=== Поставка === | |||
=== Решење === | |||
== 4. задатак == | |||
=== Поставка === | |||
=== Решење === | |||
[[Категорија:Системски софтвер]] | [[Категорија:Системски софтвер]] | ||
[[Категорија:Рокови]] | [[Категорија:Рокови]] | ||
Верзија на датум 21. септембар 2025. у 16:40
Испит у року септембар 1 2025. године одржан је 21. септембра. Трајао је сат и по времена и радио се на рачунарима.
1. задатак
Поставка
Посматра се процес асемблирања датог ивзорног асемблерског кода за amd64 архитектуру. Резултат асемблирања је предметни програм по ELF формату. Приказати садржај (1) табеле симбола и (2) релокационих записа строго поштујући школски формат и обавезно у складу са задатом нумерацијом симбола.
.intel_syntax noprefix
.extern a
.global f
.type f, @object
.equ f, b-c
.text
call a[+ip] # 0x00
e: mov rax, c # 0x06
jz e # 0x0e
jz c # 0x10
d: mov rax, [b - f] # 0x16
.long e # 0x1e
.data
.skip 0x6 # 0x00
c: .long b + 0xe # 0x06
b:
.end
Напомена: Хексадецимални бројеви наведени у коментару изворног асемблерског кода представљају померај до почетка инструкције у том реду гледано од почетка секције којој инструкција припада. Такође, усвојити претпоставку да је величина операционог кода:
- 2B за инструкцију
callза PC релативно адресирање, - 4B за инструкцију
movза апсолутно адресирање и - 2B или 1B за инструкције скока за PC релативно адресирање, у зависности од ширине операнда.
Решење
| Num | Value | Size | Type | Bind | Ndx | Name |
|---|---|---|---|---|---|---|
| 0: | 0 | 0 | NOTYP | LOC | UND | |
| 1: | 0 | 0 | SCTN | LOC | 1 | .text |
| 2: | 0 | 0 | SCTN | LOC | 2 | .data |
| 3: | 0 | 0 | SCTN | LOC | 3 | .bss |
| 4: | А | 0 | NOTYP | LOC | 2 | b |
| 5: | 6 | 0 | NOTYP | LOC | 2 | c |
| 6: | 6 | 0 | NOTYP | LOC | 1 | e |
| 7: | 16 | 0 | NOTYP | LOC | 1 | d |
| 8: | 4 | 0 | OBJ | GLOB | ABS | f |
| 9: | 0 | 0 | NOTYP | GLOB | UND | a |
| Offset | Type | Symbol | Addend |
|---|---|---|---|
| 2 | R_X86_64_PC32 | 9 | -4 |
| A | R_X86_64_32S | 2 | 6 |
| 12 | R_X86_64_PC32 | 2 | 2 |
| 1A | R_X86_64_32S | 2 | 6 |
| 1E | R_X86_64_32 | 1 | 6 |
| Offset | Type | Symbol | Addend |
|---|---|---|---|
| 6 | R_X86_64_32 | 2 | 18 |