Assignment 2

Assignment 2

First part

Finish your simulator of SIC/XE computer which you worked on in the last three exercises. Consult lectures, the book, slides and other notes for the specification of the computer. Implement at least the following functionalities:

  • registers
  • memory
  • devices - devices 0, 1, 2 map to standard input/output/error
  • all kinds of addressing
  • all kinds of instruction formats
  • instructions for (integer) arithmetics, shifting, etc.
  • jump instructions
  • load and store instructions
  • add also support for automatic execution ((start, stop, and step commands).
Design and implement a suitable user interface for your simulator (textual or graphical). Show the values of registers, add controls for start, stop in step. Test your simulator with your programs from the previous assignment as you will need to show this to your assistant.
Notice: Support for floating point instructions is not necessary. Support for system instructions (e.g., SIO, HIO, etc.) is not necessary.
Create also an executable script run.sh which compiles and executes your simulator. You may also call make within the script.

Second part

Use your creativity and generate an idea for an addition of some functionality for you simulator.

Example: support for floating point instructions, additional devices, multicore SIC/XE, disassembly view, memory view, watches, breakpoints, etc.

Defense

Store your source code and other material in your Subversion repository. Create also a tag ass2 for it. I expect that after entering

  • svn co https:/lalgec.fri.uni-lj.si/spo/USER/tags/ass2

I get all the necessary files including run.sh on my disk.

You will present your simulator at the tutorials. Use shell and svn command to checkout your assignment, show how to compile your simulator, show some of your assembly programs how they run in your simulator, show some interesting part of the source code. Please be fluent with computer while presenting.