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:
8
Resposta certa: V F F V
Anexos:
respondido por:
0
VFFV....CORRETO. CORRIGIDO PELO AVA
Perguntas similares
6 anos atrás
8 anos atrás
8 anos atrás
9 anos atrás
9 anos atrás
9 anos atrás