Fundamentos de Computação - I/O 2

(Técnico - Tec. da Informação - EPE 2006 CESGRANRIO)

2. Uma máquina possui instruções de 16 bits e endereços de 4 bits. Do conjunto total de instruções, 15 referenciam 3 endereços, 14 referenciam 2 endereços e 16 não apresentam referência a endereço. Qual é o número máximo de instruções que referenciam 1 endereço que esta máquina pode ter?

a) 7
b) 16
c) 31
d) 63
e) 128

Resposta: C

Foi dado que a máquina possui instruções de 16 bits e endereços de 4 bits.

No caso das instruções que referenciam 3 endereços, 12 bits da instrução guardarão o endereço e 4 bits guardarão o opcode. Digamos que os bits mais significativos sejam os do opcode, e os bits menos significativos sejam os bits dos endereços. No caso das instruções que referenciam 3 endereços, temos 4 bits de opcode, que fornecem 16 opções distintas de opcode, das quais 15 são utilizadas p/ esse tipo de instrução. Logo, o opcode que resta é utilizado nos demais tipos de instrução (digamos que o opcode 0000 é o opcode que resta). Temos assim o seguinte esquema:

Código:

E = bits de endereço
X = bits de instrução

---------------------------
XXXX | EEEE | EEEE | EEEE |
---------------------------

Para instruções que referenciam 2 endereços, foi dado que elas são 14 no total. Como os primeiros 4 bits devem ser 0000 (opcode restante do caso anterior, e que permite identificar que esta instrução não é uma instrução da classe anterior), sobra apenas os 4 próximos bits de opção p/ opcodes. No total, temos então 16 opcões de opcode. Como foi dado que apenas 14 instruções referenciam 2 endereços, então sobram 2 opcodes nesse campo (digamos: 0000 e 0001). Temos assim o seguinte esquema:

Código:

E = bits de endereço
X = bits de instrução

---------------------------
0000 | XXXX | EEEE | EEEE |
---------------------------


O próximo dado do exercício é que existem 16 instruções que não referenciam endereço. Com esse dado, podemos concluir que essas instruções são provenientes da variação de apenas 4 bits (que na nossa convenção, corresponde aos últimos 4 bits), os quais tem seu valor variando de 0 a 15.

Chegamos finalmente às instruções que referenciam 1 endereço. Essas instruções terão a seguinte forma:

Código:

E = bits de endereço
X = bits de instrução

---------------------------
0000 | 0000 | XXXX | EEEE |
---------------------------
ou

---------------------------
0000 | 0001 | XXXX | EEEE |
---------------------------


Os valores 0000 e 0001 no segundo campo são as opções de opcode que sobraram das instruções que referenciam 2 endereços. Assim, para cada um desses 2 casos, temos 16 opções distintas de opcode, o que daria um total de 32 instruções distintas nessa categoria. Entretanto, não podemos esquecer que 1 opcode desses deve ser utilizado p/ identificar as instruções que não referenciam endereços. Então, digamos que para o segundo campo igual a 0000, todos os 16 opcodes podem ficar para instruções de 1 endereço, mas para o segundo campo igual a 0001, 15 opcodes são usados para instruções desse tipo e um opcode (digamos, 0000) p/ identificar o caso de instruções que não referenciam endereços. Assim, temos para as instruções que não referenciam endereços:


Código:

E = bits de endereço
X = bits de instrução

---------------------------
0000 | 0001 | 0000 | XXXX |
---------------------------



Ou seja, o número máximo de instruções que referenciam 1 endereço que esta máquina pode ter são 31 instruções. Portanto, letra C.
Postar um comentário

Postagens mais visitadas deste blog

MANUAL DE REDAÇÃO DA PRESIDÊNCIA DA REPÚBLICA

Plural de substantivos compostos