Sistemski softver/Septembar 1 2025

Izvor: SI Wiki
< Системски софтвер
Datum izmene: 21. septembar 2025. u 16:40; autor: Aleksa (razgovor | doprinosi) (костур остатка странице)
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

.symtab
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: A 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
.rela.text
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
.rela.data
Offset Type Symbol Addend
6 R_X86_64_32 2 18

2. zadatak

Postavka

Rešenje

3. zadatak

Postavka

Rešenje

4. zadatak

Postavka

Rešenje