Lista de Exercícios

Propaganda
Autarquia Educacional do Vale do São Francisco – AEVSF
Faculdade de Ciências Aplicadas e Sociais de Petrolina – FACAPE
Ciência da Computação
Arquitetura de Computadores
Prof. Sérgio Faustino
Lista de Exercícios 2
Obs.: Para as questões a seguir, considere o exemplo da Microarquitetura IJVM (Mic-1).
1o) Descreva, resumidamente, de quais fatores depende o projeto do Nível da Microarquitetura.
2o) Qual a composição básica e quais as funcionalidades dos elementos que formam o Mic-1 (Figura
4.6, Tanenbaum)?
3o) Um registrador pode ser lido e escrito no mesmo ciclo de clock sem produzir lixo?
4o) Descreva o que ocorre durante cada subciclo em um ciclo do caminho de dados.
5o) Qual o objetivo de uma microinstrução? Descreva a função dos sinais que compõem uma palavra
de controle (microinstrução)?
6o) Como a arquitetura IJVM divide a memória? Caracterize cada uma das partes.
7o) Descreva o que faz cada instrução abaixo e quais os passos necessários (microinstruções) para a
execução das mesmas (informe o conteúdo dos registradores envolvidos e da pilha a cada passo).
a) IAND (considere que as palavras do topo da pilha são 4216 e 2516).
b) IFEQ deslocamento (considere o deslocamento = 012316 e a palavra do topo da pilha igual a
0016)
c) IFEQ deslocamento (considere o deslocamento = 012316 e a palavra do topo da pilha igual a
4216)
d) SWAP (considere que as palavras do topo da pilha são 4216 e 2516)
8o) Quais as características mensuráveis que podem ser utilizadas para melhorar o projeto do Nível da
Microarquitetura?
9o) (questão 7, cap. 4, Tanenbaum) Considere o seguinte comando Java: i = j + k + 4; Encontre duas
traduções diferentes desse comando para a linguagem de montagem do IJVM.
10o) (questão 8, cap. 4, Tanenbaum) Encontre o comando Java que produziu o seguinte código IJVM:
ILOAD j
ILOAD k
ISUB
BIPUSH 6
ISUB
DUP
IADD
ISTORE i
11o) (questão 25, cap. 5, Tanenbaum) Calcule a expressão booleana (A AND B) OR C para:
A = 1101 0000 1010 1101
B = 1111 1111 0000 1111
C = 0000 0000 0010 0000
12o) (questão 26, cap. 5, Tanenbaum) Elabore uma metodologia para trocar o conteúdo de duas
variáveis A e B sem usar uma terceira variável ou um registrador. Dica: pense na instrução
“exclusive or”.
13o) Quais as características que um bom Nível ISA deve apresentar?
14o) O que diferencia o Modo Kernel e o Modo Usuário?
15o) Por que as instruções pequenas são, em geral, mais atraentes do que as grandes?
16o) Explique e exemplifique os modos básicos de endereçamento.
17o) Caracterize e exemplifique as instruções do Nível ISA segundo as suas funcionalidades.
18o) Para o trecho de código abaixo, identifique para cada instrução:
a) O que a mesma faz (observe a figura 5.33 do Tanenbaum)
b) O modo de endereçamento
c) O tipo de instrução (segundo as funcionalidades)
Código em C: tela[200]=~tela[200];
Correspondente:
MOV EAX,DWORD [_tela]
MOV AL,BYTE [EAX+0C8H]
NOT AL
MOV ECX,DWORD [_tela]
MOV BYTE [ECX+0C8H],AL
Download