prova (9/12/2011, 2 horas e 40 minutos)smaira/graduação/6º semestre... · execute as seguintes...
Post on 05-Dec-2018
213 Views
Preview:
TRANSCRIPT
Prova (9/12/2011, 2 horas e 40 minutos)
É permitido consultar os manuais de teoria e de experiências e os códigos escritos como soluções elos exercícios. Chame o código com o seu nome (sem acentos, espaços brancos, et c. ).
J. [3.0 pontos] Escreva um loop que gere a seguinte tabela, armazenando-a a part ir da posição 6000h da memória externa:
• Loop com i valendo de O a 255:
Coloque o valor atual de i na variável e.
Loop com k valendo de O a 7:
* Se o bit mais significativo ele e for 1, desloque e de 1 bit à esquerda, depois faça XOR de e com o valor 9Bh.
* Se o bit mais significativo de e for O, desloque e de 1 bit à esquerda.
Armazene o valor de e na posição i da tabela.
Note que na deslocação à esquerda o bit menos significativo após a operação de deslocamento deve sempre ser O.
Confira os resultados gerados pelo seu código. As primeiras oito entradas da tabela devem ser: OOh, 9Bh, ADh, 36h, Clh , 5Ah , 6Ch, F7h.
2. [2.0 pontos] Considere cada dígito do seu número USP como um byte. (Por exemplo, caso seu número USP seja 1234567, considere a sequência de bytes Olh , 02h, 03h, 04h, 05h , 06h , 07h.) Execute as seguintes operações para esse conjunto de bytes:
• Inicie o acumulador em zero.
• Para cada byte b dos dados de entrada:
Faça XOR do acumulador com o byte b.
Consulte a posição da tabela (criada no exercício anterior) correspondente à posição contida no acumulador e armazene no próprio acumulador o valor guardado nessa posição da tabela.
• Ao final , mostre no display o valor contido no acumulador.
No caso seu número USP seja 1234567, o resultado final seria ACh.
3. [2 .0 pontos] Modifique o código do exercício anterior para implementar o seguinte algoritmo:
• Inicie o acumulador em zero.
• Faça um loop :
Leia uma tecla do teclado do kit .
Se a tecla não for uma tecla numérica, saia do loop.
Se a tecla for uma tecla numérica:
* Faça XOR do acumulador com o valor da tecla.
* Consulte a posição da tabela correspondente à posição contida no acumulador e armazene no próprio acumulador o valor guardado nessa pos1çao.
* Limpe o display.
* Exiba o valor do acumulador no display.
Digite seu número USP nas teclas do kit e confira que, ao final , o número exibido no display é o mesmo da questão anterior.
4. [3 .0 pontos] Agora coloque em ordem crescente os números da tabela crüida no primeiro exercício. Para fazer isso, use um algoritmo baseado em trocas:
• Varra a lista inteira trocando dois números em posições consecutivas na lista se o primeiro for maior do que o segundo.
• Repita o passo anterior até que nenhuma troca aconteça após varrer a lista completamente.
Considere os números como inteiros sem sinal.
1 ..... ;/ 1 \,
/
/ /
top related