Ao invés da microarquitetura MIC-1, podemos ter uma outra, MIC-2,
cujo formato de microinstrução usa apenas 12 bits (Figura ):
OP diz o que a microinstrução faz. R1 e R2 codificam 2
registradores. Em instruções de desvio, R1 e R2 são
combinados para dar um endereço de 8 bits R.
Por exemplo,
ADD SP, AC
significa que o valor de AC é somado a SP.
Os 16 OP são:
0000 | ADD | Addition | r1:=r1 + r2 |
0001 | AND | Boolean And | r1:=r1 AND r2 |
0010 | MOVE | Move register | r1:=r2 |
0011 | COMPL | Complement | r1:=inv(r2) |
0100 | LSHIFT | Left shift | r1:=lshift(r2) |
0101 | RSHIFT | Right shift | r1:=rshift(r2) |
0110 | GETMBR | Store MBR in reg | r1:=mbr |
0111 | TEST | Test register | if r20 then n:=true; |
if r2=0 then z:=true | |||
1000 | BEGRD | Begin read | mar:=r1; rd |
1001 | BEGWR | Begin write | mar:=r1; mbr:=r2; wr |
1010 | CONRD | Continue read | rd |
1011 | CONWR | Continue write | wr |
1100 | Not used | ||
1101 | NJUMP | Jump if N=1 | if n then goto r |
1110 | ZJUMP | Jump if Z=1 | if z then goto r |
1111 | UJUMP | Unconditional jump | goto r |
Dependendo do OP, sinais apropriados de controle devem ser produzidos. A tarefa de decodificar OP para produzir esses sinais é em geral feita por meio de PLAs ou ROMs.