Системски софтвер/Септембар 1 2025

Извор: SI Wiki
< Системски софтвер
Датум измене: 21. септембар 2025. у 16:28; аутор: Aleksa (разговор | доприноси) (Нова страница: {{tocright}} '''Испит у року септембар 1 2025. године''' одржан је 21. септембра. Трајао је сат и по времена и радио се на рачунарима. == 1. задатак == === Поставка === Посматра се процес асемблирања датог ивзорног асемблерског кода за ''amd64'' архитектуру. Резултат асемблирања…)
(разл) ← Старија измена | Тренутна верзија (разл) | Новија измена → (разл)
Пређи на навигацију Пређи на претрагу

Испит у року септембар 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 релативно адресирање, у зависности од ширине операнда.

Решење