Clique sobre os objetivos listados abaixo para navegar até o conteúdo desejado.

  1. Entender o funcionamento da Pilha(Stack)

A Stack(Pilha) do 6502, diferente de outros processadores, possui um região de memória pré-definida e fixa. A pilha reside na página 1 de memória que compreende o intervalo entre 0x100 e 0x1FF e cresce a partir do limite superior em direção ao inferior, permitindo armazenar 256 bytes.

O registrador SP(8-bits) é responsável por armazenar o endereço/ponteiro do topo da pilha, e através dele as instruções podem armazenar e recuperar dados na pilha. O cálculo é feito como na fórmula abaixo:

Fórmula:
endereço_pilha <- 0x0100 + SP

As instruções do tipo PUSH e PULL são responsáveis pelo armazenamento e remoção de dados na pilha respectivamente. O SP é decrementado no PUSH e incrementado no PULL de acordo com o tamanho do dado. Esses dados podem ser vistos como argumentos para subrotinas.

Tab. 1: Pilha
Pilha PUSH PULL



Circular
$01FF SP-



SP+
$0100
Ex 1:
PHA ;push
PLA ;pull

O armazenamento e remoção de dados na pilha funciona de forma circular, ultrapassando o limite mínimo, 0x0100, o registrador SP irá "dar a volta" e apontar para 0xFF. O mesmo acontece em relação ao valor máximo 0xFF, que irá apontar para 0x00 ao ser ultrapassado.

Os valores contidos na página 1 não são "limpos" após o uso das instruções de PUSH/PULL. O registrador SP é incrementado para informar que o espaço anteriormente utilizado esteja disponível para uso.

A pilha é usada tanto para backup de valores quanto para passagem de argumentos para subrotinas. Ver Intruções: Controle de Fluxo > JSR em instruções.

Ex 2:
PHA ;push
JSR subrotina

A manipulação da pilha pode ser feita utilizando instruções de transferência e aritméticas. Essas podem ser vistas em Instruções: Transferência e Instruções: Aritméticas.

Ex 3:
TSX ;SP -> X
INX ; SP + 1
;uso da pilha
  1. 12/01/2026 - revisão 4 - Ajustes pontuais; Adição: Exs 1,2 e 3 ; info. sobre JSR e manipulação de dados
  2. 12/03/2025 - revisão 3 - Correção em valores circulares de SP; Ajustes pontuais
  3. 11/09/2024 - revisão 2 - adição de fórmula de endereço de pilha e outras correções
  4. 04/10/2023 - revisão 1 - adição de links, correção em layout, navegação e erros gramaticais
  5. 28/04/2023 - versão inicial