Engenharia Múltipla Escolha

Em um programa para piscar um LED, é necessário criar um loop principal que mantenha o programa em execução contínua. A instrução GOTO é usada para criar esse loop. Qual das seguintes instruções é usada para criar um loop infinito em Assembly para o microcontrolador PIC16F877A?

Em um programa para piscar um LED, é necessário criar um loop principal que mantenha o programa em execução contínua. A instrução GOTO é usada para criar esse loop. Qual das seguintes instruções é usada para criar um loop infinito em Assembly para o microcontrolador PIC16F877A?

  1. CALL Main
  2. RETURN
  3. GOTO Main
  4. RETLW
  5. NOP

Resolução completa

Explicação passo a passo

C
Alternativa C

Alternativa C - GOTO Main

Introdução

No contexto de programação de microcontroladores como o PIC16F877A, não há um sistema operacional para gerenciar o ciclo de vida do programa. Isso significa que o código deve ser projetado para rodar indefinidamente sem se encerrar. Para isso, utiliza-se uma estrutura de repetição conhecida como loop infinito.

O enunciado da questão já fornece a dica principal ao afirmar que "A instrução GOTO é usada para criar esse loop". Vamos analisar as opções com base nas instruções de montagem (Assembly) típicas dessa arquitetura.

Análise das Alternativas

Para entender por que a alternativa correta é a C, precisamos examinar a função de cada comando listado:

  • A) CALL Main: O comando CALL é usado para chamar uma sub-rotina (função). Ele salva o endereço de retorno na pilha antes de pular para o destino. Se usado repetidamente sem retornos adequados, pode causar estouro da pilha (stack overflow) ou comportamento errático. Não é ideal para um loop simples de manutenção.
  • B) RETURN: Este comando finaliza uma sub-rotina chamada por CALL. Ele retorna o controle para a linha seguinte à chamada original. Executar RETURN fora de uma sub-rotina geralmente leva a comportamentos imprevisíveis, pois o pontor de programa tenta ler o endereço de retorno da pilha.
  • C) GOTO Main: A instrução GOTO é um desvio incondicional. Ela faz com que o processador pule imediatamente para o endereço ou rótulo especificado ("Main"). Ao colocar essa instrução no final do código principal, o microcontrolador volta ao início do laço e executa tudo novamente, criando o loop infinito necessário para manter o LED piscando continuamente.
  • D) RETLW: Significa Return Literal to W. É usado para retornar de uma sub-rotina enquanto carrega um valor imediato no registrador W. É específico para funções que precisam retornar dados, não para loops de controle.
  • E) NOP: Significa No Operation. A CPU apenas espera um ciclo de clock sem fazer nada. Embora útil para criar pequenos atrasos, ela sozinha não cria um loop; ela precisa estar dentro de um laço criado por outra instrução.

Conclusão

A lógica de programação embarcada exige que, após a inicialização dos pinos e registradores, o fluxo de controle seja redirecionado para o início do processo principal. A sintaxe padrão para realizar esse salto no PIC Assembly é a instrução de desvio incondicional.

Portanto, a instrução GOTO Main é a única que efetivamente reinicia o fluxo do programa no ponto desejado, garantindo a execução contínua solicitada.

Alternativa C.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Engenharia

Ver mais Engenharia resolvidas

Tem outra questão de Engenharia?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.