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

  1. Modos de Operação
  2. Modo Nativo
  3. Modo Emulação
  4. Setando as flags

O 65816 possui 2 modos de operação: modo nativo e modo emulação. Esses modos são configurados pela flag lógica chamada E que afeta os registradores de dados, indexação e a memória endereçavel.

Tab. 1: Modos
E Modo RAM
0 Nativo 16MB
1 Emulação 64K

No modo Nativo, as flags M(Memory/Accumulator Select) e X(Index Register Select) controlam o tamanho em bits dos registradores para uso como mostrado na tabela abaixo:

Tab. 2: Registradores e Modos
M X Acumulador Indexador
0 0 16-bits(word) 16-bits(word)
0 1 16-bits(word) 8-bits(byte)
1 0 8-bits(byte) 16-bits(word)
1 1 8-bits(byte) 8-bits(byte)

Esse modo nativo é configurado automaticamente no hard reset do processador. A alteração do modo deve ser feita nas primeiras linhas de código.

Tanto dados do tipo byte como word podem ser lidos/escritos de acordo com a configuração de M e acessados por X/Y pela configuração de X.

No modo Emulação, o 65816 atua ou opera em modo compatibilidade com seus processadores antecessores 65(C)02 para que seja possível executar softwares legados.

A configuração da flag E é feita utilizando a instrução XCE que realiza a permuta entre as flags Carry e E. Como a flag E é lógica, não pode ser testada.

Ex:
SEC ; Carry <- 1
XCE ; E <-> Carry

A configuração das flags M ou X é feita utilizando as instruções REP e SEP. A primeira reseta os bits do registrador processor status(PS) enquanto a segunda seta os bits deste registrador. Tanto para o set quanto reset, um valor imediato é usado como máscara.

Ex:
;m=0 x=0
SEP $30 ; %00110000b
;m=1 e x=1

;m=1 x=1
REP $30 ; %00110000b
;m=0 e x=0

De acordo com a leitura do tipo de dado, as flags M e X devem ser configuradas corretamente para evitar erros no processamento das informações.

  1. 24/02/2026 - versão inicial: Modos de Operação e Setando flags