Druga domača naloga

Rok za oddajo: nedelja, 19. december 2021, 23.59

(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.