V22.0201 (sec. 1) - Computer Systems Organization (Honors)
The goal of this assignment is to give you experience writing a larger
Intel assembly program, and in particular one which uses the basic (character-based)
graphics, keyboard, and (possibly) speaker control presented in the Dewar
notes. If you have knowledge of additional IO capabilities, you are
free to use them, but that is not required.
You have your choice of three possible projects, each of which is fairly
A game program
Design an entertaining game. You may use Prof. Dewar's game as a
starting point, but you are also free to write something quite different
if you want. The game should make use of the character-based graphics
and have some real-time aspect. You may want to add music, different
levels of user difficulty, scoring options, etc.
A development environment for the stack machine
For assignment 2, you wrote a simulator for a simple stack machine.
For this assignment, you are to write a graphic simulator/debugger for
this machine. The screen should contain regions which display the
program, the program counter, the local variables, and the contents of
the stack, all in hex. You should allow the user to position the
cursor over the program or local variables and change them. In addition,
you need to provide keys which single-step the program (advancing the program
counter, updating the stack and variable displays) and which reset the
program counter. The assignment should be delivered with some sample
program already in memory.
If that's not hard enough, you can consider allowing the user to enter
the program in a symbolic form.
Implement a very simple spreadsheet, with five columns (labeled A to E)
and six rows (labeled 1 to 6). This spreadsheet should be displayed
twice on the screen: the top copy shows the contents of each cell,
while the lower copy shows the value of each cell. The contents can
be either an integer or a formula, which must be of the form cell op
cell, where cell is A1 A2 ... E6, and op is +, -, *, or /. If
the contents is an integer, the value is the same integer. If the
contents is a formula, the value is the result of computing that formula.
You should be able to position the cursor over any contents cell and modify
it, and all the affected value cells should change accordingly.
Because there will be so much variety in the assignments, it is essential
that your program include a detailed description of your assignment
as a large block of initial comments. These comments should say what
the assignment does, how to use it ("user's guide"), and a description
of the Intel capabilities you used in writing the program (graphics, video,
speaker, ...). In addition, a briefer set of instructions should
appear as a start-up screen for your program.
The assignment will be graded on: adequacy of description (did
you clearly describe what your program does, and how it does it);
internal comments; correct functionality; use of Intel capabilities;
and variety of features. We encourage you to be imaginative but still
conservative: first implement a basic system and get it to work;
later add features if you have time. Lateness penalties add up quickly,
so a good assignment done on time is better than a super assignment two
This assignment is due on November 10th. There is a penalty of
1/2 point (out of a total of 18 points) for each day late.
Email your assignment (the description the listing file produced by
the Dewar assembler) to our e-tutor, Aldo Nunez, at firstname.lastname@example.org,
with a copy to me (email@example.com). Include your name and "Asgn
3" in the subject line.