Tretja domača naloga
Zahteve zaključka
Rok za oddajo: nedelja, 14. januar 2024, 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
inEQU
(lahko samo z enostavnimi operandi – števila ali simboli); - direktivi
BASE
inNOBASE
; - razreševanje simbolov;
- pisanje objektnih datotek z zapisi
H
,E
,T
inM
(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.