As diretivas de compilação são comandos usados pelo compilador, mas não comandos que se tornarão instruções de um programa compilado, e ajudam o programador aumentando a legibilidade do código. A respeito das diretivas de compilação da linguagem C, voltada para o microcontrolador ATmega328, qual das alternativas abaixo pode ser considerada verdadeira? Escolha uma: a. A diretiva “main(){“ é utilizada para definir onde é o começo da memória de dados, ou seja, onde as variáveis do programa estarão para serem manipuladas. Todos os programas em linguagem C devem possuir pelo menos uma diretiva dessa, indicando a passagem para o loop infinito. b. A diretiva “.EQU” é responsável por registrar um valor em uma variável, mas que pode ser alterada posteriormente pelo código através de outra “.EQU”, diferentemente da diretiva “#define”, que associa uma variável a um valor definitivamente. c. A diretiva “#define” é obrigatória para todos os programas embarcados e deve ser usada para definir todas as variáveis do programa. d. A diretiva “while(TRUE)” serve para indicar onde estará no código o loop infinito, que pode ser unitário, mas pode ser múltiplo, se o programa demandar muitos processamentos. Essa diretiva não existe em Assembly, nem alguma correspondente. e. A diretiva “#include” é equivalente a diretiva de Assembly “.INCLUDE”, que é utilizada para incluir algum arquivo para o seu programa. Apesar de não ser obrigatório, é muito útil na construção de programas embarcados, principalmente na primeira linha: #include, incluindo os nomes registradores para a utilização no programa usuário.
Responda
A linguagem de programação C permite que trechos de códigos mais longos, complexos e trabalhosos de se construir em linguagem Assembly sejam feitos de forma mais sintética, simples e abstrata, tornando o processo de programação muito mais eficiente. Considere os dois trechos de programa para o microcontrolador ATmega328, um em linguagem Assembly, e o outro em linguagem C, na figura 2.6 Figura 2.6: Dois trechos de programa embarcado. Comparação entre dois trechos de porgrama supostamente equivalentes, em linguagens Assembly e C. Fonte: Elaborada pelo autor A respeito da comparação entre eles, qual das alternativas abaixo é correta? Escolha uma: a. Não são equivalentes, mas seriam se as duas variáveis fossem testadas com o valor zero ao invés de um, no trecho em C (à direita), e a operação lógica fosse AND “&&” (E), ao invés de OR “||”(OU), no mesmo trecho. b. Não são correspondentes, mas seriam se a primeira instrução de salto condicionado em assembly fosse “BREQ” ao invés de “BRNE”, e se a variável VARI1 fosse testada com o valor zero ao invés de um no trecho em linguagem C. c. Não são equivalentes, mas seriam se a variável VARI1 fosse testada com o valor zero ao invés de um, no trecho em C (à direita), e se a operação lógica fosse XOR “^” (OU exclusivo), ao invés de OR “||”(OU). d. Não se correspondem, e teriam que ser reescritos de outra maneira, pois não há nenhuma alteração que possa ser feita para torna-los equivalentes, devido às suas estruturas não permitirem isso. e. São perfeitamente equivalentes, ou seja, vão produzir o mesmo efeito se forem processados pelo ATmega328.
Responda

Helpful Social

Copyright © 2024 ELIBRARY.TIPS - All rights reserved.