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

  1. Tipos de dados
  2. Tipos deriavdos
  3. Sinalização
  4. byte e sbyte, word sword

Como mencionado anteriormente, 68K possui 8 registradores de dados sendo esses D0-D7. Cada um desses registradores podem armazenar os tipos de dados 8,16, 32-Bits que são nomeados como Byte, Word e Longword respectivamente. O tipo ponteiro tem tamanho de 24-bits(Triplebyte).

Os valores 0-F utilizados nas tabelas abaixo representam dígitos hexadecimal.

Tab.1: Tamanho de dado em D0-D7
Tamanho Byte 3 Byte 2 Byte 1 Byte 0
Longword (32-bits) 01 AB CD EF
Word (16-bits) -- -- 01 23
Byte (8-bits) -- -- -- 01

O 68K possui a instrução EXT que extende ou converte dados que afeta os bytes posteriores ao tamanho do dado são utilizado: byte -> word e word -> longword.

Muitas instruções do 68K utilizam os prefixos .B, .W e .L de forma a definir o tamanho do dado que será trabalhado pela instrução.

Tab. 2: D~7 - Parte Byte
Byte3 Byte2 Byte1 Byte0
- - - FFh

Os byte mais altos 1,2 e 3 não podem ser acessador individualmente sendo manipulados atráves de instruções. O carregamento de um byte no registrador menos significativo 0 não afeta os byte restantes.

Tab. 3: D0~7 - Parte Word
Word1 Word0
- FF-FFh

A word mais alta 1 não pode ser acessador individualmente sendo manipulados atráves de instruções. O carregamento da word menos significativa 0 não afeta o word mais alta. O carregamento da uma longword afeta todos os bytes do registrador.

Tab. 4: D0~7 - Longword
Longword0
AA-BB-CC-DDh

Como o barramento de endereços para acessar dados na memória do 68K é de 24-bits, os registradores de endereço A0-A7 armazenam apenas valores até essa quantidade de bits.

Tab.5: Registrado de endereço
Tamanho Byte 0 Byte 1 Byte 2
24-bits 01 23 45

Os registradores A0-A7 são utilizados com conjunto para acessar dados em mémoria ou para desvio de fluxo do programa.

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

Tab. 6: array de bytes
RAM/ROM FFFF00 FFFF01 FFFF02 (...)
Valor 00h 01h 10h aah
Tab. 7: array de words
RAM/ROM FFFF00 FFFF02 (...)
Valor 1234h 5678h (...)
Tab. 8: array de longwords
RAM/ROM FFFF00 FFFF04 (...)
Valor 12345678h AABBCCDDh (...)
Tab. 9: array de ponteiros
RAM/ROM FFFF00 FFFF04 (...)
Valor 12345678h AABBCCDDh (...)
Tab. 10: string ascii
0 1 2 (...)
'o' 'l' 'a' (...)

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 11: Struct
RAM 0000 0001-2 0003-5 (...)
Valor FFh 1234Fh 56789Ah (...)

Assim como em vários processadores, existe a necessidade de manipular dados sinalizados. O bit mais significativo(msb) é o local que indica que um valor possui a sinalização.

Tab. 12: Byte
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
1 - - - - - - -
Tab. 13: Word
Bit 15 Bit 14 Bit 13 ... Bit 3 Bit 2 Bit 1 Bit 0
1 - - ... - - - -
Tab. 14: Longword
Bit 31 Bit 30 Bit 19 ... Bit 3 Bit 2 Bit 1 Bit 0
1 - - .. - - - -
Ex:
$80 / -128 / 10000000b
$7F / 127 / 01111111b
Onde:
b: binário
$: hexadecimal
-: operador unário

Um valor armazenado nos registradoros D0-D7 que possui o msb com valor 1 será visto pelo processador como um valor negativo. Quando isso acontece pela flag N(Negative) é setada para 1.

Os valores sinalizados são utilizados para recuperar valores de memória ou desvio de fluxo de execução por intermédio dos modos de endereçamento.

As instruções de rotação e deslocamento manipulam o bit mais significativo de bytes, words e longwords.

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

Tab. 15: Sinalização 16-bits
Bit 15 Bit 14 Bit 13 ... Bit 3 Bit 2 Bit 1 Bit 0
1 - - ... - - - -
Tab. 16: Sinalização 32-bits
Bit 31 Bit 30 Bit 29 ... Bit 3 Bit 2 Bit 1 Bit 0
1 - - ... - - - -
Ex:
8000h : -32768d
7FFFh : 32767d
  1. 12/03/2026 - Revisão 2 - Ajustes: pontuais e ícone; Adição: Tipos byte, word, longword, derivados, sinalização 16/32bits.
  2. 05/09/2024 - Revisão 1 - Correção ordem tamanhos word e byte invertidos em Tab. 1
  3. 01/04/2024 - versão inicial