Objetivos
Instruções de Pilha/Stack
As instruções que manipulam a pilha/stack, são responsáveis por salvar e recuperar seus dados.
Normalmente utilizadas para realizar backup de registradores durante a execução de programas
e passagem de argumento para subrotinas..
Nenhuma flag é afetada pelas instruções de pilha e apenas os pares de registradores BC(B),
DE(D) PSW(A + PS) e HL(H) são suportadas pelas instruções.
A recuperação de dados da pilha deve ser feita de forma inversa ao armazenamento para que os
dados salvos sejam restaurados na ordem correta e evitar erros.
Os registradores SP e PC não são suportados pelas instruções de pilha. Esses são
manipulados por instruções de desvio, retorno de fluxo e interrupções.
Notação utilizada:
|
|
| #$NN |
Valor hexadecimal imediato |
| ; |
Comentário |
| () |
Conteúdo de memória |
| <- |
Atribuição |
| M |
Endereço 16-bits contido em HL |
Mais informações sobre os registradores e flags podem ser vistas
em Registradores e Flags.
O funcionamento da Pilha no 8080 pode ser vista em
Pilha.
PUSH - Salva registrador na pilha
Com a instrução PUSH podemos armazenar qualquer um dos pares de registradores B(BC),
D(DE) PSW(AF) e H(HL) na pilha.
Operação
(SP) <- P
SP <- SP - 2
(PS) <- P
Endereçamento:
F(Flags)
S: -
Z: -
Ac: -
P: -
Cy:-
Ex:
LXI B,#$F0F0
PUSH B
POP - Restaurar valor da pilha
Com a instrução POP, podemos recuperar um valor contido na pilha e atribuí-lo a
qualquer um dos pares B(BC), D(DE) PSW(AF) ou H(HL).
Operação
P <- (PS)
SP <- SP + 2
Endereçamento:
F(Flags)
S: -
Z: -
Ac: -
P: -
Cy:-
Ex:
LXI B,#$F0F0
LXI D, #$0F0F
PUSH B
PUSH D
POP D
POP B
A instrução SPHL move o valor de 16-bits contido no registrador H(HL) para
o registrador SP. Essa instrução não possui operandos.
Operação
SP <- HL
Endereçamento:
F(Flags)
S: -
Z: -
Ac: -
P: -
Cy:-
Exemplo:
LXI H, #$FFFF
SPHL ;SP <- FFFF
Histórico de atualizações
- 12/05/2026 - revisão 5 - Ajustes: objetivos, intro, descrições PUSH,POP e SPHL
- 12/12/2024 - revisão 4 - Correções e ajustes pontuais
- 09/09/2024 - revisão 3 - Correção em erros gramaticais
- 30/08/2024 - revisão 2 - Correção em links de objetivos
- 04/10/2023 - revisão 1 - adição de links, correção em layout, navegação e erro gramaticais
- 08/08/2023 - versão inicial
Os cursos oferecidos nesta página são cursos fornecidos por parceiros. Ao comprar um curso clicando
em seu banner, você está ajudando a manter o projeto TutorialDev vivo. Os sites dos cursos parceiros utilizam cookies.