Total Marks: 15


Answer the following Questions:


[This task requires you to use the MARIE simulator for Question 1. Prior to starting this task, you must ensure that the simulator is running correctly by completing the tutorial provided with the simulator, located under Resources within the Interact site.]

  1. Write a MARIE program using a loop that multiplies two non-negative numbers by using repeated addition. For example, to multiply 3 x 6, the program would add 3 six times (e.g. 3 + 3 + 3 + 3 + 3 + 3) or add 6 three times (e.g. 6+6+6). You should write and run the program using MARIE simulator. Also write the code with Address, Instruction, and Comments. [5 marks]

  2. You are designing an instruction set for your computer. All the instructions are of same size (11 bits long). The size of an address field is 4 bits. You have already designed five 2-address instructions and 40 1-address instructions. How many 0-address instructions can still you can fit? Justify your answer. [5 marks]

  3. Write code to implement the expression: A= (B + C) * (D - E) on 3-, 2-, 1- and 0-address machines. In accordance with programming language practice, computing the expression should not change the values of its operands. [5 marks]




This assessment task covers topics on CPU operation and Instruction Set Architecture, and has been designed to ensure that you are engaging with the subject content on a regular basis. More specifically it seeks to assess your ability to:

  • be able to demonstrate and appropriately use computer organisation and architecture terminologies;

  • be able to investigate the internal operation of the Central Processing Unit (CPU) and describe how it is used to execute instructions;

  • be able to investigate and describe in detail the essential elements of computer organisation including internal bus, memory, Input/Output ( I/O) organisations and interfacing standards and discuss how these elements function;


Marking Criteria


Q/NFail (<50%)Pass (50% - 64%)Credit (65% - 74%)Distinction (75% - 84%)High Distinction (>84%)
1Code does not meet specification.Code meets specification but has errors in operation.Code meets specification, however does not produce correct results for special inputs. Little documentation and comments.Code meets specification and is well documented with comments.Code meets specification, is well documented with comments, and produces correct results for any inpout. Deals with wrong inputs and exhibits proper messages in case of inappropriate inputs.
2Incorrect answer with no demonstration of understanding the topic.Student demonstrate the understanding, however the calculations are incorrect.Answers are correct, omission of few calculations.Answers are correct and clearly show the calculations
3 Incorrect answers with no demonstration of understanding the topic.Answers show basic understanding of the concept, however contain few errorsAnswers are correct, omission of few details.Answers are correct, meet all required instructions.