Системски софтвер/Септембар 1 2025 — разлика између измена
Пређи на навигацију
Пређи на претрагу
(Нова страница: {{tocright}} '''Испит у року септембар 1 2025. године''' одржан је 21. септембра. Трајао је сат и по времена и радио се на рачунарима. == 1. задатак == === Поставка === Посматра се процес асемблирања датог ивзорног асемблерског кода за ''amd64'' архитектуру. Резултат асемблирања…) |
|||
| Ред 13: | Ред 13: | ||
.text | .text | ||
call a[+ip] # 0x00 | call a[+ip] # 0x00 | ||
e: mov rax, c # 0x06 | e: mov rax, c # 0x06 | ||
jz e | jz e # 0x0e | ||
jz c | jz c # 0x10 | ||
d: mov rax, [b - f] # 0x16 | d: mov rax, [b - f] # 0x16 | ||
.long e | .long e # 0x1e | ||
.data | .data | ||
.skip 0x6 # 0x00 | .skip 0x6 # 0x00 | ||
c: .long b + 0xe # 0x06 | c: .long b + 0xe # 0x06 | ||
b: | b: | ||
.end | .end | ||
Верзија на датум 21. септембар 2025. у 16:30
Испит у року септембар 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 релативно адресирање, у зависности од ширине операнда.