Project 2: Instruction Set Design

The goal of this project is to design an instruction set for a 32-bit, 1½ address machine. This project is worth 15% of your grade in this class and is due at the start of class on Thursday, April 3. You should turn in a printed copy of your instruction set.

The typical instruction of a 1½ address machine has a general address (which may be a memory address or a register address) and a register address. The general address provides one of the source operands, the register address provides the other souce operand and identifies the destination of the result. Certainly, some instructions may violate these general rules, e.g., an instruction that stores the value in a register into a memory location.

Your design should describe any registers that are visible to the assembly language programmer and the binary format for instructions, but should not consider details related to the implementation of instruction interpretation.

You should consider issues related to function calls and supervisor/user mode. In considering function calls, you should describe instructions used to call functions and the expected organization of a stack frame. In considering supervisor/user mode, you should describe the mechanisms used to transition between these two modes.

You are to work in groups of two to four people. Each group must have at least two people in the design and no group may have more than four people.

This report is expected to be 10 to 15 single-spaced, typeset pages.