Question 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. [10 marks]
- How many bits are needed for the opcode?
- How many bits are left for the address part of the instruction?
- What is the maximum allowable size for memory?
- What is the largest unsigned binary number that can be accommodated in one word of memory?
Question 2:
Consider an instructionAdd 1000. Memory contents, Accumulator (AC), and R1 Register contents are depicted in the below figure: (such as memory address 1000 contains a value 1400, memory address 1100 contains a value 400 etc. All the numbers used here are decimals.) [8 marks]
Assuming R1 is implied in the indexed addressing mode, determine the actual value loaded into the accumulator (AC) using the following addressing modes:
- Immediate
- Direct
- Indirect
- Indexed
Question 3:
More registers appears to be a good thing, in terms of reducing the total number of memory accesses a program might require. Using the arithmetic expression S = (A+B)-(C+D), support this statement. [Hints: First, determine the number of memory accesses necessary using MARIE and the two registers for holding memory data values (AC and MBR). Then perform the same arithmetic computation for a processor that has more than three registers (for example, R1, R2, R3, R4) to hold memory data values.][6 marks]
Question 4:
Assemble the MARIE program below.[6 marks]
Hex Address Label Instruction
100 Start LOAD A
101 ADD B
102 STORE D
103 CLEAR
104 OUTPUT
105 ADDI D
106 STORE B
107 HALT
108 A, HEX 00FC
109 B, DEC 14
10A C, HEX 0108
10B D, HEX 0000
a) List the hexadecimal code for each instruction [2 marks]
b) Draw the symbol table [2 marks]
c) What is the value stored in the AC when the program terminates? [2 marks]