O 68K possui ao todo 16 registradores: D0-D7 e A0-A7, PC, SP e Flags que estão listados de forma resumida nas tabelas abaixo tendo suas descrições e uso explicados mais adiante.

Tab. 1: Registradores
Registrador Descrição Tamanho(bits)
D0-D7 Registradores de Dado 8/16/32-Bits
A0-A7 Registradores de Endereço 24-bits
PC Program Counter 24-bits
SP/A7 Stack Pointer 24-Bits
SR/Flag/CCR Status Register/ Flags/ Condition Code Register 16-Bits
Tab.2: Status Register
Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
T - S - - I2 I1 I0 - - - X N Z V C

O registrador SP utiliza o registrador A7 por padrão. Esse valor inicial é definido no vetor de interrupções.

O acesso ao valores 16/32 em memória possui restrições em relação o endereço utilizado.

Os registradores A0-A7 podem utilizar até 6 modos diferentes de endereçamento para acessar valores em memória.

Os registradores D0-D7 são é utilizado em operações aritméticas, lógicas, pilha, carregamento e armazenamento de dados. Não há o conceito de acumulador no 68K. Esses registradores podem armazenar valores sinalizados e não-sinalizados.

O registradores A0-A7, que são usados para armazenar endereços de memória, tanto para acessar valores em memória quanto utilizados para armazenar valores. Podem ser utilizados em conjunto para em alguns modos de endereçamento. O registrador A7 tem uso específico.

O PC é um registrador de 24-bits que armazena o endereço da próxima instrução que será executada pelo processador. Este registrador é incrementado automaticamente à medida que as instruções vão sendo executadas ou modificadas por algumas instruções de desvio de fluxo.

O SP é um registrador de 24-bits que armazena o endereço do topo da pilha(Stack) do 68K. Este registrador é incrementado explicitamente ou implícitamente por instruções de stack frame. Por padrão, o registrador A7 é configurado inicialmente como o SP podendo ser acesso tanto como SP ou A7.

O 68K possui um grupo de flags para que possamos entender seu status após a execuções de suas instruções e interrupções.

As flags de 0-7 são conhecidas flags do usuário ou CCR enquanto as flags 8-15 são conhecidas como flags do sistema. Juntas formam o Status Register(SR)

Tab. 3: Status Register
Bit15 Bit14 Bit13 Bit12 Bit11 Bit10 Bit9 Bit8 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
T - S - - I2 I1 I0 - - - X N Z V C
Bit 0: Carry

A flag C(Carry), pode ser entendida como o "Vai-um ou Vem-um" em operações aritméticas de soma e subtração. Em instrução de deslocamento e rotação de bits armazena os bits mais e menos significativos.

Bit 1: Overflow

A flag O(Overflow) é utilizada em operações que envolvem aritmética sinalizada indicando um extravasamento no armazenamento. Por exemplo, se dois valores de mesmo sinal são somados e um valor de sinal contrário é gerado, há overflow. Havendo overflow, a flag recebe o valor 1, caso contrário recebe o valor 0.

Bit 2: Zero

A flag Z(Zero) indica que o valor carregado em um registrador ou memória é igual a zero ou não. Se for igual a zero, a flag recebe o valor 1, caso contrário recebe o valor de 0.

Bit 3: Negative

A flag N(Negative) indica a sinalização de um valor armazenado em um registrador. Se um valor for positivo, a flag recebe valor 0, caso seja negativo recebe o valor 1. Um valor sinalizado é indicado pelo bit mais significativo.

Bit X : Extended

Flag que armazena uma cópia de Carry após a execução de algumas instruções. A flag X não é alterada por todas instruções e pode ser utilizada para realizar validações em cascata.

Bit 8-10: Interrupt Mask(IM) / Máscara de Interrupções

A flag composta do bits 8-10 armazenam a prioridade das interruções. Uma interrupção é executada ou ignorada de acordo com essa flag.

Tab. 4: Interrupt Mask
Nível I2 I1 I0 Prioridade
0 0 0 0 Todas Ignoras
1 0 0 1 1
2 0 1 0 2
3 0 1 1 3
4 1 0 0 4
5 1 0 1 5
6 1 1 0 6
7 1 1 1 MNI*

*MNI - Interrupção não mascarável.

Bit 13: S - Supervisor Bit

Essa flag habilita o modo supervisor. Utilizada por sistemas operacionais.

Bit 15: T - Trace bit

A flag T é utilizada para debug. Uma vez habilitada, uma interrupção é executada após cada instrução executada.

  1. 05/09/2024 - Revsisão 1 - Correção em erros gramaticais
  2. 01/04/2024 - versão inicial