Sistemski softver/Februar 2023
Pređi na navigaciju
Pređi na pretragu
Ispit u februarskom roku 2023. godine održan je 10. februara i trajao je dva sata.
1. zadatak
Postavka
Odrediti vrednost pri obradi od strane asemblera za hipotetičku mašinu (ukoliko vrednost nije poznata napisati znak pitanja) i indeks klasifikacije za svaki izraz u okviru izvornog asemblerskog koda datog u nastavku.
BEG
USE LAB1
ORG 0x60
SCT DAT
LAB2 DC LAB1
DC 7 + LAB2
SCT TXT
LAB3 LDA LAB2 - 1
ADX * - LAB3
END
Rešenje
Jako sličan zadatak pojavio se na drugom kolokvijumu 2022. godine, gde je rešen.
2. zadatak
- Isti zadatak kao iz junskog roka 2022. godine.
3. zadatak
- Isti zadatak kao iz avgustovskog roka 2022. godine.
4. zadatak
- Ovaj zadatak nije rešen. Pomozite SI Wiki tako što ćete ga rešiti.
Postavka
Posmatra se emulator za HYPO mašinu zasnovan na dinamičkoj rekompilaciji. Emulator je predviđen za izvršavanje na amd64 arhitekturi.
- Prikazati kod kojim je neophodno završiti svaki prevedeni blok bez ikakvih optimizacija po pitanju čuvanja vrednosti registara, u slučaju kada iz bloka ima samo jedan izlaz (na kraju bloka se ne nalazi instrukcija uslovnog skoka).
- Prikazati kod koji je na početku svakog prevedenog bloka potrebno umetnuti kako bi se blok korektno izvršio bez obzira što se između prethodnog i posmatranog bloka izvršavao i kod emulatora.
- Prikazati izmene koje u prethodno prikazanim segmentima koda nastanu ukoliko emulator po saznanju da je odredišni blok preveden maksimalno optimizuje kod po pitanju uštede vremena na instrukcije za čuvanje i restauraciju vrednosti registara, kao i na kod za povratak u emulator (koji više nije potreban).
- Da li je prilikom prevođenja koda moguće u potpunosti odstraniti kod za čuvanje i restauraciju vrednosti registara u opštem slučaju? Ako da, kako? Ako ne, zašto?