Sistemski softver/Septembar 1 2025

Izvor: SI Wiki
< Системски софтвер
Datum izmene: 21. septembar 2025. u 16:28; autor: Aleksa (razgovor | doprinosi) (Нова страница: {{tocright}} '''Испит у року септембар 1 2025. године''' одржан је 21. септембра. Трајао је сат и по времена и радио се на рачунарима. == 1. задатак == === Поставка === Посматра се процес асемблирања датог ивзорног асемблерског кода за ''amd64'' архитектуру. Резултат асемблирања…)
(razl) ← Starija izmena | Trenutna verzija (razl) | Novija izmena → (razl)
Pređi na navigaciju Pređi na pretragu

Ispit u roku septembar 1 2025. godine održan je 21. septembra. Trajao je sat i po vremena i radio se na računarima.

1. zadatak

Postavka

Posmatra se proces asembliranja datog ivzornog asemblerskog koda za amd64 arhitekturu. Rezultat asembliranja je predmetni program po ELF formatu. Prikazati sadržaj (1) tabele simbola i (2) relokacionih zapisa strogo poštujući školski format i obavezno u skladu sa zadatom numeracijom simbola.

.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

Napomena: Heksadecimalni brojevi navedeni u komentaru izvornog asemblerskog koda predstavljaju pomeraj do početka instrukcije u tom redu gledano od početka sekcije kojoj instrukcija pripada. Takođe, usvojiti pretpostavku da je veličina operacionog koda:

  • 2B za instrukciju call za PC relativno adresiranje,
  • 4B za instrukciju mov za apsolutno adresiranje i
  • 2B ili 1B za instrukcije skoka za PC relativno adresiranje, u zavisnosti od širine operanda.

Rešenje