Correct option is A
Stepwise Solution: Identifying Non–Memory Reference Instructions
Step 1: Recall the instruction format
We are using the basic computer (Mano) instruction format:
- 1 bit: I / mode bit (0 = direct, 1 = indirect)
- 3 bits: opcode
In this model:
- Memory reference instructions → opcode = 000 to 110
- Non–memory reference instructions → opcode = 111
- If I = 0 → Register reference instruction
- If I = 1 → I/O instruction
So:
Any instruction with opcode = 111 is not a memory reference instruction.
Any instruction with opcode ≠ 111 (000–110) is a memory reference instruction.
Any instruction with opcode ≠ 111 (000–110) is a memory reference instruction.
Step 2: Check each pattern
A. mode = 1, opcode = 010
- Opcode 010 (≠ 111) → belongs to memory reference group.
Memory reference instruction
B. mode = 0, opcode = 111
- Opcode 111 → non–memory-reference group.
- With I/mode = 0, this is a register reference instruction.
Not a memory reference instruction
C. mode = 1, opcode = 111
- Opcode 111 → still in non–memory-reference group.
- With I/mode = 1, this becomes an I/O instruction.
Not a memory reference instruction
D. mode = 1, opcode = 110
- Opcode 110 (≠ 111) → still in the memory reference class (e.g., ISZ).
Memory reference instruction
E. mode = 1, opcode = 001
- Opcode 001 (≠ 111) → also a memory reference opcode (e.g., ADD).
Memory reference instruction
Step 3: Collect the non–memory reference cases
From the above:
- B → non–memory reference
- C → non–memory reference
Therefore, the instructions that do not represent memory reference instructions are:
B and C only
So, the correct option is:
(a) B and C only
Information Booster
- Memory Reference Instructions
- Use opcodes 000–110 in this architecture.
- Operate on memory (e.g., LDA, STA, ADD, SUB, ISZ, AND, etc.).
- These involve loading/storing data from memory, such as LDA, STA, ADD, SUB and JMP.
- Register Reference Instructions
- Use opcode = 111 with I = 0.
- Act only on CPU registers (e.g., CLA, CMA, HLT, etc.), no memory address is used.
- These operate within CPU registers, such as HLT (Halt), CLA (Clear Accumulator), CMA (Complement Accumulator).
- I/O Instructions
- Use opcode = 111 with **I = 1`.
- Used for input/output operations, again not memory reference.
- Role of Mode Bit (I)
- I = 0 → direct addressing (address field is actual memory address).
- I = 1 → indirect addressing (address field points to another memory location containing the effective address).
- But if opcode = 111, the instruction is never memory-reference, regardless of I.
- Direct vs. Indirect Addressing Mode:
- Mode = 0 (Direct Addressing): Refers directly to a memory location.
- Mode = 1 (Indirect Addressing): Refers to a memory location that stores another memory address.