>> Tecnologia Eletrônica >  >> Telefones >> Secretárias Eletrônicas

Operações de Pilha no 8085: PUSH, POP e o Stack Pointer

O 8085 usa uma pilha Last-In-First-Out (LIFO) em RAM externa, gerenciada pelo Stack Pointer (SP) de 16 bits.

PUSH rp / PSW

Ação: SP ← SP – 2; M[SP] ← byte alto; M[SP+1] ← byte baixo.
Ciclos: 12 T-states (rp) / 12 (PSW).
Exemplo: PUSH B armazena B (alto) em SP, C (baixo) em SP+1.

POP rp / PSW

Ação: byte baixo ← M[SP]; byte alto ← M[SP+1]; SP ← SP + 2.
Ciclos: 10 T-states.
Exemplo: POP H carrega H de SP, L de SP+1.

Usos Principais

  • Endereço de Retorno de Subrotina: CALL empilha PC; RET desempilha PC.
  • Preservação de Registradores: Salva registradores entre interrupções/subrotinas.
  • Passagem de Parâmetros: Empilhe args antes do CALL; desempilhe dentro.
  • Dados Temporários: Resultados intermediários em rotinas matemáticas.

Inicialização

Sempre defina SP cedo: LXI SP, STACK_TOP (ex.: 8000H). Pilha cresce para baixo a partir de STACK_TOP.

Sem verificação de limites — stack overflow corrompe dados; underflow lê lixo.