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.

Comentários

Postagens mais visitadas deste blog

Redação Ti Nota 10 - Klauss

Prova Discursiva nota 10 - Banca Cespe

Portugues - Orações