Tretja domača naloga
Completion requirements
Due: Sunday, 11 January 2026, 11:55 PM
(7) Prvi del
Dokončaj zbirnik za SIC/XE. Implementira naj vsaj:
- branje izvorne kode;
- (skoraj) vse ukaze v vseh formatih;
- direktive
START,END,ORGinEQU(lahko samo z enostavnimi operandi – števila ali simboli); - direktivi
BASEinNOBASE; - razreševanje simbolov;
- pisanje objektnih datotek z zapisi
H,E,TinM(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.