Note on Symbolic Microprogram
The symbolic microprogram describes how a computer processes each machine instruction step by step.
Instead of doing the whole instruction at once, the computer breaks it into small internal tasks called
micro-operations. These steps are written as symbolic microinstructions.
The table you provided contains these instructions: ADD, BRANCH, STORE, EXCHANGE, FETCH, and
INDRCT. Each instruction is defined using five parts: Label, Microoperations, CD, BR, and AD.
Here's what each column means:
Label: It is the name of the instruction or step (e.g., ADD, FETCH, STORE).
Microoperations: These are the actual tasks the control unit performs in that step (like READ, WRITE, ADD).
CD (Condition): This tells whether the step should run under a specific condition. For example, "U" means
unconditional (always done), "I" means it depends on the instruction, and "S" means based on status.
BR (Branch): This tells what to do after the current step - jump to another step (JMP), call a subroutine
(CALL), return from one (RET), or map the instruction (MAP).
AD (Address): This shows where to go next - the label of the next step.
Now, let's explain each instruction routine:
Note on Symbolic Microprogram
1. ADD Instruction (ORG 0)
First, it checks whether the instruction is indirect. If yes, it calls the INDRCT routine. Then it reads the
operand from memory and performs the ADD operation. Finally, it jumps to FETCH to get the next instruction.
2. BRANCH Instruction
This routine simply checks a condition. If the condition is true, it jumps to the OVER routine.
3. OVER Routine
This handles the actual branch. It first checks if the instruction is indirect, and if so, it calls INDRCT. Then it
moves the address in PC (Program Counter) into the Address Register (AR), and goes to FETCH.
4. STORE Instruction (ORG 8)
It first checks if the instruction uses indirect addressing and calls INDRCT if needed. Then, it moves the
contents of the accumulator into the data register and writes that data into memory. After storing, it goes back
to FETCH.
5. EXCHANGE Instruction (ORG 12)
This instruction exchanges data between memory and the accumulator. First, it checks for indirect addressing
and reads data from memory. Then it swaps the contents of the accumulator and the data register. After that,
it writes the new value back into memory and goes to FETCH.
6. FETCH Routine (ORG 64)
This is used to load instructions from memory. It first takes the address from the Program Counter and loads
it into the Address Register. Then it reads the instruction from memory and increases the Program Counter.
Note on Symbolic Microprogram
Finally, it maps the instruction to the proper routine (ADD, STORE, etc.) using the MAP instruction.
7. INDRCT Routine
This routine is used when indirect addressing is needed. It reads the actual memory address from a location
and then continues to the next step.
Summary
Every instruction starts with FETCH. Based on the opcode, it jumps to the right routine (like ADD or STORE).
That routine then performs the necessary micro-operations and finally returns to FETCH for the next
instruction. This is how the computer understands and executes each instruction, step by step, using a
symbolic microprogram.