Questão de Programação — Assembly — FGV 2024
- Código
- fg085503
- Banca
- FGV
- Órgão
- INPE
- Ano
- 2024
- Nível
- Superior
- Cargo
- Tecnologista Júnior I - Desenvolvimento de Software Embarcado
- ARET e ACALL.
- BRETI e LCALL.
- CSWAP e SJMP.
- DPOP e PUSH.
- EDEC SP e INC SP.
GabaritoD — POP e PUSH.
Gabarito: letra D. Na arquitetura 8051 (e na maioria dos processadores), as instruções específicas para manipular a pilha são PUSH (para armazenar um dado no topo da pilha) e POP (para retirar um dado do topo da pilha e colocá-lo em um registrador ou local de memória). A questão pede exatamente essas duas, na ordem: retirar (POP) e armazenar (PUSH).
O contexto fornecido não detalha o conjunto de instruções do 8051, mas este é um conhecimento fundamental de assembly: toda arquitetura que possui pilha oferece instruções do tipo PUSH/POP (ou equivalentes). No 8051, o mnemônico é exatamente POP e PUSH.
RET e ACALL são instruções de controle de sub-rotina: ACALL chama uma sub-rotina (empurra o endereço de retorno na pilha) e RET retorna da sub-rotina (puxa o endereço). Não servem para armazenar/retirar dados genéricos em registradores.
RETI é retorno de interrupção; LCALL é chamada longa de sub-rotina. Novamente instruções de fluxo, não de manipulação direta de dados na pilha.
SWAP troca os nibbles de um registrador; SJMP é um salto incondicional curto. Nenhuma relação com pilha.
POP retira um byte do topo da pilha e o coloca em um registrador ou endereço de memória; PUSH coloca um dado no topo da pilha. São as instruções padrão para acesso à pilha no 8051.
DEC SP e INC SP decrementam/incrementam o Stack Pointer (ponteiro de pilha), mas não transferem dados entre a pilha e registradores. Manipulam o ponteiro, mas não são as instruções de “armazenar/retirar dados” pedidas.
A banca mistura instruções de chamada/retorno (RET, ACALL, RETI, LCALL) e de manipulação do ponteiro (DEC/INC SP) com as verdadeiras instruções de pilha. Memorize: PUSH empurra, POP puxa — são as únicas que efetivamente movem dados entre a pilha e os registradores.
Gabarito: letra D — POP e PUSH.
Link permanente: /questoes/fg085503