1 - O mundo das CPUs se divide em duas faces hoje: os seguidores da
seita RISC, e os seguidores da CISC. Como em qualquer disputa, ambos possuem vantagens e desvantagens. Responda: a) Apresente uma razo para escolher uma mquina CISC em relao RISC e explique. (2 pontos) b) E a RISC, porque ela to popular em relao arquitetura CISC nos dispositivos mveis? (2 pontos) c) Como um CPU RISC consegue um bom desempenho, apesar de precisar de mais instrues para fazer o mesmo trabalho que uma mquina CISC? (2 pontos)
2 O trecho de cdigo abaixo parte de um programa de torres de Hanoi
no MIPS: .data .align4 input:.asciiz"\nEnternumberofdisks>" move_d: .asciiz"Movedisk:" from: .asciiz"frompeg:" to: .asciiz"topeg:" new_line:.asciiz".\n" DONE:.asciiz"\nDone.\n" .text .globlmain#Allowotherstocallmain main:add $fp,$zero,$sp; #settheframepointer li $2,4; #Systemcodeforprintstring la $4,input; #Argumentstringasinput syscall; #Printthestring li $2,5; #Systemcallcodetoreadint syscall; #Readit add $a0,$zero,$v0; #movenumberintoarg1 addi $a1,$zero,1; #putoneintoarg2 addi $a2,$zero,2; #puttwointoarg3 addi $a3,$zero,3; #putthreeintoarg3 jal hanoi; #jumpandlinktohanoi Exit:li $v0,4; #printdone la $a0,DONE; syscall; li $2,10; #Systemcallcodeforexit syscall#exit
a) Apresente a tabela de smbolos gerada na primeira passada do
montador para o programa acima. Voc pode inventar endereos para as variveis. Para os desvios assuma que todas as instrues possuem o mesmo tamanho (4 bytes). (3 pontos) b) Apresente a estrutura do arquivo objeto (gerado depois da execuo do montador). Indique quais smbolos voc teria no arquivo objeto para que sejam resolvidas as referncias externas e internas. Assuma que qualquer
smbolo no definido no arquivo acima est em outros mdulos do
programa, ou so bibliotecas. (3 pontos) c) Diga quais instrues o carregador vai ter que modificar antes de executar o programa (voc pode dar s o nome) e explique o que deve ser mudado. (3 pontos)
3 Rapidinhas. Responda sempre justificando: (1 ponto cada)
a) D dois exemplos de pseudo-instrues em uma linguagem de montagem. b) Um aluno de software bsico est rodando um emulador de Super Nintendo para Windows. Qual nvel, na organizao de camadas, est sendo emulado? E o emulador, est rodando em qual nvel? c) Um compilador gera micro-programas? d) Porque dividir a execuo de uma instruo em diversas etapas bom para processadores que usam pipeline? e) Descreva um programa (ou uma situao) em que importante saber se o seu computador little endian ou big endian. f) Porque hoje as arquiteturas modernas preferem ter muitos registradores, do que sempre operar com dados em memria?