+1 Daumen
2,6k Aufrufe

Gegeben ist folgendes Mikroprogramm in Hexadezimaldarstellung:

$$ \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} $$

(a) Geben Sie die Mikroinstruktionen in der symbolischen MAL-Notation an.

(b) Was wird durch dieses Mikroprogramm berechnet?


Leider weiß ich nicht wie ich diese Aufgabe angehen soll. Würde mich über ein paar Tipps freuen.

LG

Avatar von

1 Antwort

0 Daumen

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)

Avatar von
Made by a lovely Community