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 possuindo 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.

Tab. 1: Pilha
Pilha PUSH PULL



Circular
$01FF SP-



SP+
$0100

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.

  1. 12/03/2025 - revisão 3 - Correção em valores circulares de SP; Ajustes pontuais
  2. 11/09/2024 - revisão 2 - adição de fórmula de endereço de pilha e outras correções
  3. 04/10/2023 - revisão 1 - adição de links, correção em layout, navegação e erros gramaticais
  4. 28/04/2023 - versão inicial