:: Organização de Computadores II ::






Expandindo os Códigos da Operação

Considere uma instrução de n + k bits com um código de operação de k bits e um endereço único de n bits. Esta instrução permite 2k operações diferentes e 2n células endereçáveis de memória.
Caso nós queiramos aumentar o código de operação devemos abrir mão do número de endereços e assim reciprocamente.
Vamos agora analisar um exemplo. Considere uma máquina cujas instruções possuem comprimento de 16 bits e cujos endereços possuem comprimento de 4 bits, como mostra a figura.
Esta situação poderia ser razoável para uma máquina que possuísse 16 registradores nos quais acontecessem todas as operações aritméticas. Um possível projeto teria código de operação de 4bits e três endereços em cada instrução, provendo 16 instruções de três endereços.

Figura 5.19

Entretanto, se os projetistas necessitarem de 15 instruções de três endereços, 14 instruções de dois endereços, 31 instruções de um endereço e 16 instruções de três endereços.

Figura 5.19

Entretanto, se os projetistas necessitam 15 instruções de três endereços, 14 instruções de dois endereços, 31 instruções de um endereço e 16 instruções sem endereço, podem utilizar os códigos de operação 0 a 14 como instruções de três endereços mas interpretam o código de operação 15 de modo diferente.
O código de operação 15 informa se o código de operação está contido nos bits 8 a 15 ou de 12 a 15. Os bits 0 a 3 e 4 a 7 constituem dois endereços, como usualmente. Todas as 14 instruções ds dois enderecaos tem 1111 commo os 4 bits mis á esquerda e os números de 0000 a 1101 nos bits 8 a 11. As instruções com 1111 como os 4 bits mais `z esquerda e 1110 ou 1111 nos bits 8 a 11 serao tratadas de maneira especial. Alas serão tratadas como se seus códigos de operação estivessem nos bits 4 a 15. O resultado são 32 novos códigos de operação .Como são necessários apenas 31, o çoddigo de operação 111111111111 é interpretado de forma a significar que o código de operação real está nos bits 0 a 15, provendo assim 16 instruções sem endereço.
Como vimos nesta discussão, o código vai ficando cada vez maior, isto é as instruções de três endereços tem código de operação de 4 bits, as instruções de dois endereços tem código de opera cão de 8 bits, as intrucoes de um endereço tem código de operação de 12 bits a as instruções sem endereço tem um código de operação de 16 bits.
Voltar