Системски софтвер/Фебруар 2023

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу

Испит у фебруарском року 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 архитектури.

  1. Приказати код којим је неопходно завршити сваки преведени блок без икаквих оптимизација по питању чувања вредности регистара, у случају када из блока има само један излаз (на крају блока се не налази инструкција условног скока).
  2. Приказати код који је на почетку сваког преведеног блока потребно уметнути како би се блок коректно извршио без обзира што се између претходног и посматраног блока извршавао и код емулатора.
  3. Приказати измене које у претходно приказаним сегментима кода настану уколико емулатор по сазнању да је одредишни блок преведен максимално оптимизује код по питању уштеде времена на инструкције за чување и рестаурацију вредности регистара, као и на код за повратак у емулатор (који више није потребан).
  4. Да ли је приликом превођења кода могуће у потпуности одстранити код за чување и рестаурацију вредности регистара у општем случају? Ако да, како? Ако не, зашто?

Решење