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

  1. Tipos de dados fundamentais
  2. Tipos Derivados
  3. Sinalização

O 65816 possui os tipos de dados fundamentais com tamanho 1(Bit), 8(Byte) e 16-bits(word) que são usados para a execução de operações.

O tipo ponteiro(16/24-bits) armazena endereço de memória para acesso a dados dados ou código sendo compostos do tipo byte.

Tipo 1: bit
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
- - - - - - - -
Tipo 2: Byte
Byte0
12h
Tipo 3: word
Byte 0 Byte 1
HH LL
12h 34h
Tipo 4: Ponteiro 16-bits
Byte 0 Byte 1
HH LL
12h 34h
Tipo 5: Ponteiro 24-bits
Byte 0 Byte 1 Byte 2
HH MM LL
12h 34h 56h

Os bits de um registrador ou valor em memória são manipulados pelas instruções lógicas/bitwise e manipulação de bits que podem ser vistas em Instruções: Lógica/Bit.

Exceto pelos tipos Bit e Byte, os outros tipos são armazenados em memória no formato little-endian como pode ser visto em Arquitetura: Memória.

A partir do dados de tamanho 8-bits e 16-bits, os seguintes tipos de dados derivados podem ser declarados e utilizados de acordo com a necessidade do software:

Tipo 6: array de bytes
RAM 0100 0101 0102 (...)
Valor 00h 01h 10h aah
Tipo 7: string ascii
0 1 2 (...)
'o' 'l' 'a' (...)
Tipo 8: array de words
RAM 0100 0102 (...)
Valor 3412h 7856h (...)
Tipo 9: Array de ponteiro
RAM 0100 0103 (...)
Valor 123456h FF1234Fh (...)

Os dados mostrados acima são declarados no código utilizando diretivas específicas fornecidas pelo assembler em que informamos na linha de código qual o tamanho do dado que deve ser usado.

Tipos de dados mais complexos como structs e strings multibytes são declarados utilizando como base os tipos de dados vistos fundamentais byte e word.

Tipo 10: Struct
RAM 0000 0001-2 0003-5 (...)
Valor FFh 1234Fh 56789Ah (...)

Assim como em vários processadores, existe a necessidade de manipular dados sinalizados. Em um valor de 8-bits, o bit 7 é o local ou bit que indica onde a sinalização é identificada.

Em instruções de desvio de fluxo, um operando sinalizado é utilizado para calcular o novo endereço para desvio.

Tab. 1: Sinalização
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
1 - - - - - - -

Um valor armazenado no registrador A, que possui o bit 7 contendo o valor 1, será visto pelo processador como um valor negativo. Quando o bit 7 possuir o valor 0, será visto como um valor positivo. Essa situação pode ser vista pela flag N(Negative).

Ex:
80h : -128d | 10000000b
7Fh : 127d | 01111111b
Onde:
b: binário
h: hexadecimal
d: decimal sinalizado

No modo de endereçamento Relative, por exemplo, um byte sinalizado é utilizado como operando para as instruções de branch.

Para valores 16-bits, o funcionamento da sinalização em relação a flag N é o mesmo, diferenciando a posição do bit.

Tab. 2: Sinalização 16-bits
Bit 15 Bit 14 Bit 13 ... Bit 3 Bit 2 Bit 1 Bit 0
1 - - ... - - - -
Ex:
8000h : -32768d
7FFFh : 32767d

No ME Program Counter Relative Long, um endereço sinalizado de 16-bits é utilizado para desvio de fluxo de execução.

  1. 24/02/2026 - versão inicial: Tipos de dados básicos, derivados e sinalização