Системски софтвер/Фебруар 2023
Пређи на навигацију
Пређи на претрагу
Испит у фебруарском року 2023. године одржан је 10. фебруара и трајао је два сата.
1. задатак
Поставка
Одредити вредност при обради од стране асемблера за хипотетичку машину (уколико вредност није позната написати знак питања) и индекс класификације за сваки израз у оквиру изворног асемблерског кода датог у наставку.
BEG
USE LAB1
ORG 0x60
SCT DAT
LAB2 DC LAB1
DC 7 + LAB2
SCT TXT
LAB3 LDA LAB2 - 1
ADX * - LAB3
END
Решење
Јако сличан задатак појавио се на другом колоквијуму 2022. године, где је решен.
2. задатак
- Исти задатак као из јунског рока 2022. године.
3. задатак
- Исти задатак као из августовског рока 2022. године.
4. задатак
- Овај задатак није решен. Помозите SI Wiki тако што ћете га решити.
Поставка
Посматра се емулатор за HYPO машину заснован на динамичкој рекомпилацији. Емулатор је предвиђен за извршавање на amd64 архитектури.
- Приказати код којим је неопходно завршити сваки преведени блок без икаквих оптимизација по питању чувања вредности регистара, у случају када из блока има само један излаз (на крају блока се не налази инструкција условног скока).
- Приказати код који је на почетку сваког преведеног блока потребно уметнути како би се блок коректно извршио без обзира што се између претходног и посматраног блока извршавао и код емулатора.
- Приказати измене које у претходно приказаним сегментима кода настану уколико емулатор по сазнању да је одредишни блок преведен максимално оптимизује код по питању уштеде времена на инструкције за чување и рестаурацију вредности регистара, као и на код за повратак у емулатор (који више није потребан).
- Да ли је приликом превођења кода могуће у потпуности одстранити код за чување и рестаурацију вредности регистара у општем случају? Ако да, како? Ако не, зашто?