As instruções que manipulam a pilha são responsáveis por salvar e recuperar dados da Stack.
Normalmente, utilizadas para realizar backup de registradores durante a execução de programas e também
endereços de retorno de subrotinas.
Nenhuma flag é afetada pelas instruções de pilha, exceto POPF, e apenas os valores de 16-bits podem ser salvos
ou restaurados.
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.
A pilha é acessada utilizando o registrador de Segmento SS, Stack Segment, em conjunto com o registrador SP na
forma SS:[SP].
Os registradores CS e IP não podem ser operandos das instruções de pilha. Apenas instruções
como CALL e RET manipulam esses registradores.
O uso da pilha de forma incorreta ao armazenar e restaurar dados, ou manipular endereços CS e IP, pode
acarretar em erros na execução de um programa.
Os registradores SI e DI também podem ser utilizados para backup, mas esse uso ser feito com cuidado para
evitar erros.
Notação utilizada:
|
|
; |
Comentário |
[] |
Conteúdo de memória |
<- |
Atribuição |
MEM |
Endereço de memória |
REG |
Registradores de uso geral |
SREG |
Registradores de segmento |
Mais informações sobre os registradores e flags podem ser vistas
em Registradores e Flags.
O funcionamento da Pilha no 8086 pode ser vista em
Pilha.