• Matéria: Lógica
  • Autor: AUD07
  • Perguntado 8 anos atrás

Todos os programas embarcados escritos em linguagens de mais alto nível, como C ou C++, podem ser convertidos em um programa em linguagem Assembly ou até linguagem de máquina equivalente. Essa tarefa é exatamente o que os compiladores fazem, de uma maneira mais completa. E isso significa também que, qualquer programador de sistemas embarcados que sabe programar em C, pode converter manualmente seus programas de C para Assembly, mesmo que isso não seja necessário. Pois cada comando em C, principalmente os de controle, podem ser convertidos em estruturas padrões em Assembly, que são poucas.

A respeito da programação de sistemas embarcados, e comparando as linguagens Assembly e C em termos de estruturas de controle, analise os três exemplos de programa na figura seguinte, responsáveis por realizar a operação de somatório de 1 até 5 = 15, e armazenar o resultado na variável Somatorio1a5:



Figura – Três exemplos de programas embarcados para o ATmega328.



Três programas exemplo para comparação entre as linguagens Assembly e C.



Fonte: Elaborada pelo autor.





Observe agora as seguintes afirmações sobre a comparação dos programas apresentados:

I – As dois programas em C estão corretos, pois vão apresentar o comportamento esperado se executados, porém, o mesmo não ocorre para o programa em Assembly.

II – Os dois programas em C não podem ser considerados equivalentes, pois se compilados e executados vão apresentar comportamentos e códigos compilados distintos. No entanto, o primeiro programa em Assembly está totalmente coerente com os requisitos do problema, e apresentará o resultado correto se executado.

III – Os três programas são totalmente equivalentes, e se compilados e executados vão apresentar o mesmo comportamento, com exceção dos dois erros de sintaxe apresentados no código em Assembly, que não permitirá que este possa ser compilado.

IV – Os três programas são quase equivalentes e seriam se apenas o primeiro, em Assembly fosse ajustado. Diferente dos outros dois, este programa fará o somatório de 1 até 4, pois as iterações são contabilizadas de CNT = 2 até 5, apesar de parecer que a primeira iteração corresponde a CNT = 1. Se a instrução INC fosse removida e inserida depois da instrução SUB, esse problema seria corrigido.



Considerando a ordem das as afirmativas, qual das alternativas representa corretamente quais são verdadeiras ou falsas?

Escolha uma:

Respostas

respondido por: claudinei001
8
Resposta certa: V F F V
Anexos:
respondido por: wilsonbs
0

VFFV....CORRETO. CORRIGIDO PELO AVA

Perguntas similares