Escolar Documentos
Profissional Documentos
Cultura Documentos
1. No segundo programa de exemplo mostrado na aula sobre avr_sim, foi feito o cálculo da soma
dos valores armazenados com as instruções ADD e ADC.
1.1. Por que não foi usada apenas ADD nos dois casos?
1.2. Mostre uma maneira de se fazer esta mesma soma de forma mais rápido, isto é, com menos
instruções de máquina.
Resposta:
1.1. Optamos por usar a instrução ADC em lugar de mais uma instrução ADD porque, precisamos
somar o flag Carry com o registrador R19, e dessa maneira é nele que ficarão armazenados
os 8bits mais significativos da soma dos valores armazenados na memória, zerando no
caminho o registrador R17 para ele não interferir na contagem; ou seja, como a instrução ADD
não fornece a possibilidade de somar o Carry, não podemos usá-lo para levar a conta nos bits
mais significativos mencionados.
1.2. Uma maneira alternativa, mas rápida, de fazer a soma é como se mostra na figura:
Código alternativo
Código original da com menos instruções
parte de somas.
de máquina.
Comentários:
Com essa diretiva é suficiente para armazenar nosso programa a partir da posição 0x200.
4. Justifique com exemplos por que as afirmativas abaixo estão certas ou erradas.
1. ‘Toda micro-operação está associada à geração de um sinal de controle.’
Justificativa:
A afirmativa está errada, pois uma microperação pode precisar mais de um sinal de controle
para ser corretamente executada.
Por exemplo, a instrução ADD, no ciclo de execução, utiliza uma microperação que precisa
tanto da ativar um sinal de controle TRB, que faz a ação de levar um dado dos registradores
até o RDM, como também do sinal de controle wT, que leva ou escreve no TMP o dado do
barramento; portanto fazendo uso de mais de um sinal de controle.