Non è vero che ad una qualsiasi sequenza di 36
bit corrisponde un instruzione Mic1 in formato mal perchè esiste
almeno un caso in cui non è vero. Infatti se si verifica che i =
bit
JAMN,JAMZ,JAMC sono tutti a 1 non ci può essere un' istruzione in
formato mal che la decodifica.
Due istruzioni che producono TOS = 0 sono:
011100101 000 00110000 001000000 000 0010
011100101 000 01000000 001000000 000 0011
Nella prima l'ALU esegue 0 + 0 = 0 e il risultato viene =
memorizzato
in TOS
Nella seconda L'ALU esegue (0 AND 0) >> 1 = 0 e il risultato viene
memorizzato in TOS. Abbiamo anche modificato i bit del BUS B =
perchè
(considerando che EnB è 0) è indifferente modificarne il
valore.
011100101 000 11010111 011000101 010 0010
L'istruzione mal è:
OPC = TOS = MAR = PC = 0; rd; goto L1
dove L1 ha indirizzo 0x0E5
111111111 111 11111111 100000000 000 0000
A questa istruzione non può corrispondere nessuna istruzione
mal perchè sono abilitati contemporaneamente JAMC, JAMN e JAMZ
000000000 000 00000000 011111111 111 1111
L'istruzione mal è:
=
OPC=TOS=CPP=LV=SP=PC=MDR=MAR=0;rd;wr;fetch;goto L2
dove L2 ha indirizzo 0x000
101100101 001 01011010 100111101 101 0010
L'istruzione mal è:
H=CPP=LV=SP=PC=MAR= H' >> 1; =
if(Z) goto L3;
else goto L4
dove L3 ha indirizzo 0x165 e L4 ha indirizzo 0x165
e H' indica la negazione di H
(by Elisa Pappalardo)
- 1) 011100101 000 11010111 011000101 010 0010
Nell'istruzione 1) i bit SLL e SRA del campo relativo
alle istruzioni dello shifter sono entrambi a 1,quindi non vi č alcuna
istruzione in formato mal che corrisponde a tale stringa di 36 bit
(non si puņ effettuare contemporaneamante shift logico e aritmetico di
una stessa stringa).
- 2) 111111111 111 11111111 100000000 000 0000
Nell'istruzione 2) vengono messi a 1 tutti e 3 i bit relativi alle
istruzioni di salto(JMPC,JAMN,JAMZ),oltre a quelli del campo relativo allo shifter,
anche in questo caso npon vi č alcuna istruzione in formato mal che
corrisponde a tale istruzione.
- 3)000000000 000 00000000 011111111 111 1111
In tale istruzione i tre bit "wrire,read e fetch" sono tutti 1.
- 4)101100101 001 01011010 100111101 101 0010
I bit "write e fetch" sono entrambi 1,non si puņ verificare per
il nostro Mic-1.