Task 1. A digital computer has a memory unit with 16 bits per word. The instruction set consists of 122 different operations. All instructions have an operation code part (opcode) and an address part (allowing for only one address). Each instruction is stored in one word of memory. [4 marks] a) How many bits are needed for the opcode? b) How many bits are left for the address part of the instruction? c) What is the maximum allowable size for memory? d) What is the largest unsigned binary number that can be accommodated in one word of memory? 2. Consider the MARIE program below. [5 marks] a) List the hexadecimal code for each instruction. [1.5 marks] b) Draw the symbol table. [1.5 marks] c) What is the value stored in the AC when the program terminates? [2 marks] Hex Addr Label Instruction 100 Start, Load A 101 Add B 102 Store Temp 103 Load C 104 Add D 105 Add Temp 106 Store F 107 Output 108 HALT 109 A, DEC 5 10A B, DEC 3 10B C, DEC 4 10C D, DEC 13 10D E, DEC 3 10E Temp, HEX 00FD 10F F, HEX 00FE 3. Write code to implement the expression F = (A+B) /(C*D*E) on 2-, 1- and 0-address machines. [6 marks]