a)
Zuerst wandelst du das Mikroprogramm in die Binärdarstellung um.
\( \begin{array}{llllll}{0 x} & {4} & {20} & {14} & {80} & {05} \\ {0 x} & {4} & {28} & {3 c} & {00} & {a 3} \\ {0 x} & {4} & {30} & {35} & {02} & {11} \\ {0 x} & {4} & {38} & {14} & {80} & {00} \\ {0 x} & {4} & {40} & {35} & {02} & {11} \\ {0 x} & {8} & {00} & {3 c} & {01} & {42}\end{array} \)
wird also zu:
\( \begin{array}{llllll}{0 1000 0100 000 0001 0100 1000 0000 0 000 0101} \\ {0 1000 0101 000 0011 1100 0000 0000 1 010 0011} \\ {0 1000 0110 000 0011 0101 0000 0010 0 001 0001} \\ {0 1000 0111 000 0001 0100 1000 0000 0 000 0000} \\ {0 1000 1000 000 0011 0101 0000 0010 0 001 0001} \\ {1 0000 0000 000 0011 1100 0000 0001 0 100 0010} \end{array} \)
Diese Darstellung kannst du jetzt in die MAL-Notation überführen:
Die Bits 1-9 für NEXT_ADDRESS.
Die Bits 10-12 für JAM.
Die Bits 13-20 für die ALU.
Die Bits 21-29 für C.
Die Bits 30-32 für MEM.
und die Bits 33-36 für den B-Bus.
Suche z.B. nach "the layout of the microinstruction for Mic-1" für eine übersichtliche Tabelle.
Damit kommst du auf folgende Mikroinstruktionen:
H = LV
MAR = MBRU + H; rd
PC = PC + 1; fetch
H = MDR
PC = PC + 1; fetch
MDR = MBR + H; wr; goto 0x100
b)
Das Mikroprogramm erhöht den Wert einer lokalen Variable um eine Konstante. (Es handelt sich um den IINC Befehl)