FC ConcursosFC Concursos

Questão FC405948

Na programação de sub-rotinas em linguagem assembly, é comum o armazenamento temporário de dados e/ou de endereços, para que sejam restaurados logo após o retorno à função principa

Questões sem classificação de assunto (TI - Engenharia de Software)

FGV · 2024

Na programação de sub-rotinas em linguagem assembly, é comum o armazenamento temporário de dados e/ou de endereços, para que sejam restaurados logo após o retorno à função principal. As pilhas (stacks) são estruturas de dados do tipo LIFO (Last In, First Out) adequadas para armazenar dados e/ou endereços quando alguma sub-rotina é chamada. Os conjuntos de instruções das arquiteturas mais comumente utilizadas possuem instruções específicas de acesso à pilha.

 

Na arquitetura 8051, as instruções usadas para retirar dados da pilha e para armazenar dados na pilha, colocando-os em registradores de uso geral, são, respectivamente,

  1. RET e ACALL.
  2. RETI e LCALL.
  3. SWAP e SJMP.
  4. POP e PUSH.
  5. DEC SP e INC SP.
Mostrar resposta e comentário

Gabarito

D

Comentário do professor

POP: instrução que retira um byte do topo da pilha e o coloca em um destino (geralmente um endereço direto da RAM ou registrador). No 8051 a operação copia o conteúdo apontado por SP para o operando de destino e, em seguida, decrementa o ponteiro de pilha. Em forma sucinta: \( \text{DEST} \leftarrow [\text{SP}];\ \text{SP} \leftarrow \text{SP}-1\).

PUSH: instrução que armazena um byte vindo de um operando (registrador/endereço direto) na pilha. O 8051 primeiro incrementa o SP e depois grava o dado no novo endereço apontado por SP. Em forma sucinta: \( \text{SP} \leftarrow \text{SP}+1;\ [\text{SP}] \leftarrow \text{SOURCE}\).

Essas operações implementam a política LIFO e são usadas para salvar/restaurar valores ao chamar sub-rotinas.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo