Tretja domača naloga

Rok za oddajo: nedelja, 2. januar 2022, 23.55

(7) Prvi del

Dokončaj zbirnik za SIC/XE. Implementira naj vsaj:

  • branje izvorne kode;
  • (skoraj) vse ukaze v vseh formatih;
  • direktive START, END, ORG in EQU (lahko samo z enostavnimi operandi – števila ali simboli);
  • direktivi BASE in NOBASE;
  • razreševanje simbolov;
  • pisanje objektnih datotek z zapisi H, E, T in M (poenostavljeni); ter
  • lep izpis objektne in zbirne kode (kot datoteke .lst, ki jih ustvari SicTools).

(5) Drugi del

Dodaj še kakšno funkcionalnost svojemu zbirniku. Standardni jezik SIC/XE lahko tudi razširiš. Nekaj idej:

  • literali in direktova LTORG;
  • podpora polni relokaciji;
  • bloki;
  • razdelki (angl. control sections);
  • poljubni izrazi v direktivi EQU;
  • makroji;
  • optimizacija (računanje konstantnih izrazov med zbiranjem, odstranjevanje mrtve kode, …).

Zagovor

Izvorno kodo shrani v svojo shrambo git v imenik ass3. Vključi vse izvorne datoteke, skripto za izvajanje run.sh in navodila v readme.md. Preveri, da lahko program prevedeš in poženeš, če narediš svežo kopijo shrambe.

Svoje izdelke boste predstavili na vajah. Pokazali boste, kako uporabiti zbirnik in kakšen zanimiv del izvorne kode.