Na programação de sub-rotinas em linguagem assembly, é comum o
armazenamento temporário de dados e/ou de endereços, para que
sejam restaurados logo após o retorno à função principal. As pilhas
(stacks) são estruturas de dados do tipo LIFO (Last In, First Out)
adequadas para armazenar dados e/ou endereços quando alguma
sub-rotina é chamada. Os conjuntos de instruções das arquiteturas
mais comumente utilizadas possuem instruções específicas de
acesso à pilha.
Na arquitetura 8051, as instruções usadas para retirar dados da pilha
e para armazenar dados na pilha, colocando-os em registradores de
uso geral, são, respectivamente,