Esercizio 1. (Punti 4)
X Y Z X/Y Y /X (X/Y )/Z Y /Z X/(Y /Z) Y ⊕ Z X ⊕ (Y ⊕ Z) X ⊕ Y Y ⊕ X (X ⊕ Y ) ⊕ Z
0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0 1 1 0 0 1
0 1 0 0 1 0 1 0 1 1 1 1 1
0 1 1 0 1 0 0 0 0 0 1 1 0
1 0 0 1 0 1 0 1 0 1 1 1 1
1 0 1 1 0 0 0 1 1 0 1 1 0
1 1 0 0 0 0 1 0 1 0 0 0 0
1 1 1 0 0 0 0 1 0 1 0 0 1
(a) Siccome X/Y 6= Y/X e (X/Y )/Z 6= X/(Y/Z) nella tabella, l'operatore INHIBITION non è né commutativo né associativo.
(b) Siccome X ⊕ Y = Y ⊕ X e (X ⊕ Y ) ⊕ Z = X ⊕ (Y ⊕ Z) nella tabella, l'operatore XOR è sia commutativo sia associativo.
Esercizio 2. (Punti 6)
(a) F = A2B2+ (A2 B2)A1B1+ (A2 B2)(A1 B1)A0B0
(b) Il diagramma logico:
Esercizio 3. (Punti 3) (a) La tabella caratteristica:
T Q(t + 1) 0 Q(t) 1 Q(t) (b) Il diagramma logico utilizzando ip-op JK:
(c) Il diagramma logico utilizzando ip-op D:
Esercizio 4. (Punti 4)
Una possibile estensione del microcodice di Mic-1 è la seguente:
iaddthree1 MAR=SP=SP-1; rd iaddthree2 H=TOS
iaddthree3 MAR=SP=SP-1; rd iaddthree4 H=H+MDR
iaddthree5 TOS=MDR=H+MDR; wr; goto Main1
Di conseguenza, IADDTHREE richiede 6 cicli di clock. D'altra parte, l'istruzione
IADDTHREE può essere simulata tramite la sequenza
IADD IADD
che però richiede 8 cicli di clock. Il miglioramento è quindi pari a 1/4 . Esercizio 5. (Punti 1)
Rispetto al microcodice dell'esercizio precedente, la microistruzione iaddthree2 non è più necessaria, anche se non è possibile per questo ridurre il numero di cicli di clock necessari (la lettura iniziata in iaddthree1 non può nire prima di iaddthree3). Una possibile estensione potrebbe quindi essere:
iaddthree1 MAR=SP=SP-1; rd iaddthree2
iaddthree3 MAR=SP=SP-1; rd iaddthree4 H=TOS+MDR
iaddthree5 TOS=MDR=H+MDR; wr; goto (MBR1) Esercizio 6. (Punti 2)
Una possibile denizione per f potrebbe essere la seguente:
f (cane) = 000 f (gatto) = 001 f (oca) = 010 f (gallina) = 011 f (cavallo) = 100 f (topo) = 101 f (coniglio) = 110 f (mucca) = 111 Esercizio 9. (Punti 5)
Una possibile soluzione è la seguente:
subcompito:
PUSH BP MOV BP,SP MOV BX,4(BP) MOV AX,0 ritorno:
CMP BX,0 JE fine ADD AX,BX SUB BX,1 JMP ritorno fine:
POP BP RET