Druga domača naloga
(7) Prvi del
Dokončaj svoj simulator računalnika SIC/XE z vaj. Pomagaj si s knjigo in zapiski ter prosojnicami na učilnici. Implementiraj vsaj naslednje funkcionalnosti:
- registri;
- pomnilnik;
- naprave – 0, 1 in 2 naj predstavljajo standardni vhod, izhod in napake;
- vse načine naslavljanja;
- vse formate ukazov;
- ukaze za celoštevilsko aritmetiko in bitne operacije;
- ukaze za skoke;
- ukaze load in store; in
- samodejno izvajanje (z metodami start, stop in step).
Opomba: ukazov s plavajočo vejico (angl. float) ni treba implementirati. Prav tako lahko spustite sistemske ukaze, kot so SIO
in HIO
.
Za simulator lahko (ni pa nujno) ustvariš grafični vmesnik. V vsakem primeru naj simulator omogoča nadzor izvajanja in zna izpisati vrednosti registrov. Preizkusi simulator na programih, ki smo jih pisali na vajah.
Napiši še skripto run.sh
, ki prevede in požene tvoj simulator in datoteko readme.md
s kratkimi navodili za uporabo.
(5) Drugi del
Svojemu simulatorju dodaj še kakšno funkcionalnost. Nekaj predlogov (nikakor ni izčrpen seznam):
- ukazi s plavajočo vejico;
- dodatne naprave;
- večjedrni SIC/XE;
- prikaz zbirne kode (ang. disassembly);
- prikaz pomnilnika;
- orodja za razhroščevanje (watches, breakpoints);
- »undo« oziroma skok na prejšnje stanje.
Zagovor
Izvorno kodo shrani v svojo shrambo git v imenik ass2
. 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 prevesti in uporabljati simulator ter kakšen zanimiv del izvorne kode.