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.
1. How many bits are needed for the opcode?
2. How many bits are left for the address part of the instruction?
3. What is the maximum allowable size for memory?
4. What is the largest unsigned binary number that can be accommodated in one word of memory?
Question 2:
Consider an instruction Add 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.)
Assuming R1 is implied in the indexed addressing mode, determine the actual value loaded into the accumulator (AC) using the following addressing modes:
1. Immediate
2. Direct
3. Indirect
4. 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.]
Question 4:
Assemble the MARIE program below.
a) List the hexadecimal code for each instruction
b) Draw the symbol table
c) What is the value stored in the AC when the program terminates?