Skip to main content

Symbolic microprogram for fetch and add routines

Short answer

Fetch: AR←PC; DR←M[AR]&PC←PC+1; AR←DR(addr)&MAP. ADD: if I=1 CALL INDRCT; DR←M[AR]; AC←AC+DR&JMP FETCH. Indirect subroutine (INDRCT): DR←M[AR]; AR←DR(addr)&RET.

Write down the symbolic microprogram for fetch routine and addition execute routine.

A microprogram is written in symbolic form using the microinstruction fields (microoperations, condition CD, branch BR and address AD). The fetch routine starts at address 64 and the ADD routine at 0. Notation: AR = address register, DR = data register, PC = program counter.

        ORG 0
ADD:    NOP              I  CALL  INDRCT   ; handle indirect address
        READ             U  JMP   NEXT     ; DR <- M[AR]
        ADD              U  JMP   FETCH    ; AC <- AC + DR

        ORG 64
FETCH:  PCTAR            U  JMP   NEXT     ; AR <- PC
        READ, INCPC      U  JMP   NEXT     ; DR <- M[AR], PC <- PC + 1
        DRTAR            U  MAP            ; AR <- DR(0-10), go to routine
INDRCT: READ             U  JMP   NEXT     ; DR <- M[AR]
        DRTAR            U  RET            ; AR <- DR(0-10), return

Fetch needs three microinstructions. The ADD routine executes three microinstructions; if the instruction is indirect, the CALL to INDRCT adds two more (READ and DRTAR of the indirect routine), making five. It then jumps back to FETCH.

✓ Answer checked by Claude Opus 5.5 (high effort)

All Computer Organization and Architecture chapter 3 questions →