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.