+1 Daumen
2k 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

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community