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.
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 assim 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 e retorno de fluxo.
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 armazenar qualque 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:
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 registrador B(BC), D(DE) PSW(AF) e H(HL).
Operação
P <- (PS)
SP <- SP + 2
Endereçamento:
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 possue operandos.
Operação
SP <- HL
Endereçamento:
Exemplo:
LXI H, #$FFFF
SPHL ;SP <- FFFF
Histórico de atualizações
- 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.