Aufgabe1:
Erweitern sie den Befehlssatz des MU0-2 Prozessors um die Befehle PUSH, POP, LDR und STR. Füllen Sie die Steuerungstabelle aus und malen Sie in die Diagramme den jeweiligen Datenfluss.
Befehlstabelle
| Instruction | Effekt |
| Reset | PC = 0 |
| LDA S | A = [S] |
| STO S | [S] = A |
| ADD S | A = A + [S] |
| SUB S | A = A – [S] |
| JMP S | PC = S |
| JGE S | IF A ≥ 0 PC = S |
| JNE S | IF A ≠ 0 PC = S |
| STOP | stop |
| CALL S | SP = SP-1, [SP] = PC, PC = S |
| RETURN | PC = [SP],SP = SP + 1 |
| PUSH | SP = SP-1, [SP] = A |
| POP | A = [SP], SP = SP + 1 |
| LDR S | A = [[S]] |
| STR S | [[S]] = A |
| MOV PC | PC = A |
| MOV SP | SP = A |
PUSH
- Der Befehl PUSH dekrementiert (SP=SP-1) den Stackpointer (Register SP) und speichert den aktuellen Akkumulatorinhalt (Register A) auf dem Stack.
POP
- Der Befehl POP lädt den Wert auf den der Stackpointer zeigt in den Akkumulator und inkrementiert (SP=SP+1) den Stackpointer.
STR S
- Der Befehl STR S speichert den Inhalt des Akkumulator auf die Adresse, auf den die Variable S zeigt.
LDR S
- Der Befehl LDR S lädt den Akkumulator mit dem Inhalt der Adresse, auf die die Variable S zeigt.