Системски софтвер/Септембар 1 2025 — разлика између измена

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
(Нова страница: {{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     # 0x0e
   jz e             # 0x0e
   jz c     # 0x10
   jz c             # 0x10
d: mov rax, [b - f] # 0x16
d: mov rax, [b - f] # 0x16
   .long e       # 0x1e
   .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 релативно адресирање, у зависности од ширине операнда.

Решење