Pular para o conteúdo principal

Questão de Arquitetura de Computadores — Registradores — IF-MG 2024

Arquitetura de ComputadoresRegistradores
Código
qg240306
Banca
IF-MG
Órgão
IF-MG
Ano
2024
Nível
Superior
Cargo
Professor EBTT – Eletrônica - Formiga
No contexto de microcontroladores como o ATmega328, qual das seguintes afirmações descreve corretamente a função do Stack Pointer ?
  1. AO Stack Pointer armazena o endereço da próxima instrução a ser executada pelo microcontrolador.
  2. BO Stack Pointer aponta para o topo da pilha, que é usada para armazenar endereços de retorno e variáveis locais durante chamadas de função e interrupções.
  3. CO Stack Pointer é utilizado para armazenar o endereço da memória Flash onde o código do programa está armazenado.
  4. DO Stack Pointer armazena o valor atual do contador de programa.
  5. EO Stack Pointer é responsável por armazenar o endereço de todas as variáveis globais do programa.
Revelar gabarito e comentário

GabaritoB — O Stack Pointer aponta para o topo da pilha, que é usada para armazenar endereços de retorno e variáveis locais durante chamadas de função e interrupções.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Stack Pointer (Apontador de Pilha) em microcontroladores

Gabarito: letra B. O Stack Pointer (SP) aponta para o topo da pilha, estrutura usada para armazenar endereços de retorno e variáveis locais durante chamadas de função e interrupções. As demais alternativas confundem o SP com outros registradores (Program Counter, por exemplo).

O Stack Pointer (SP) é um registrador presente na CPU que armazena o endereço do topo da pilha (stack). A pilha é uma área de memória (geralmente RAM) que segue o princípio LIFO (Last In, First Out) e é utilizada para:

  • Armazenar endereços de retorno quando uma sub-rotina ou interrupção é chamada;

  • Salvar variáveis locais e contexto durante a execução de funções.

No ATmega328, o SP é inicializado com um valor (geralmente no final da RAM) e é manipulado automaticamente pelas instruções de chamada (CALL, RCALL) e retorno (RET, RETI), bem como por instruções de pilha (PUSH, POP).

Stack Pointer (SP)
  • 1Função
    • Aponta para o topo da pilha (RAM)
    • Estrutura LIFO
  • 2Usos
    • Endereços de retorno (CALL/INT)
    • Variáveis locais e contexto
  • 3Instruções que o manipulam
    • PUSH / POP
    • CALL / RCALL
    • RET / RETI
  • 4Confusões comuns
    • Program Counter (PC)
      • Próxima instrução (Flash)
      • Não é o SP
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Afirma que o Stack Pointer armazena o endereço da próxima instrução a ser executada. Isso é função do Program Counter (PC), também chamado de Instruction Pointer. O PC contém o endereço da memória de programa (Flash) da próxima instrução a ser buscada e executada.

Alternativa B — ✅ Correta ⟵ GABARITO

Descreve exatamente a função do Stack Pointer: apontar para o topo da pilha, que armazena endereços de retorno e variáveis locais durante chamadas de função e interrupções. Essa é a definição clássica e correta.

Alternativa C — ❌ Incorreta

Diz que o Stack Pointer armazena o endereço da memória Flash onde o código está. Isso é feito pelo Program Counter (PC). A memória Flash contém o programa, e o PC aponta para a instrução atual/ próxima. O SP não tem relação com endereçamento de código.

Alternativa D — ❌ Incorreta

Afirma que o Stack Pointer armazena o valor atual do contador de programa. Novamente, quem armazena o PC é o próprio registrador PC. O SP é independente e não guarda o PC (exceto quando o PC é empilhado durante uma chamada, mas o SP apenas aponta para onde o PC foi salvo na pilha).

Alternativa E — ❌ Incorreta

Diz que o Stack Pointer armazena o endereço de todas as variáveis globais do programa. Variáveis globais ficam em posições fixas da RAM (ou registradores), e não são gerenciadas pela pilha. O SP gerencia apenas variáveis locais dinâmicas e o contexto de chamada.

NÃO CAIA NESSA!

Para não confundir, lembre-se:

  • PC (Program Counter): guarda o endereço da próxima instrução.

  • SP (Stack Pointer): aponta para o topo da pilha (usada em chamadas e interrupções).

  • IR (Instruction Register): armazena a instrução sendo executada.

Gabarito: letra B

Link permanente: /questoes/qg240306