Os modos de endereçamento representam a forma como os dados são recuperados pelo processador para processamento de uma instrução.

O 68K possui algumas formas de endereçamento que serão vistos nesta parte do tutorial. A compreensão total é importante para continuar os estudos do processador.

Diferentes assemblers, tutoriais, e manuais podem utilizar suas próprias notações diferentes das apresentadas ao longo desta parte do tutorial.

Notação utilizada:
MNEMÔNICO Nome da instrução abreviado
#NNNNNN; Endereço hexadecimal imediato
.B Byte
.W Word
.L Longword
-> Atribuição
Dx,Dy D0-D7
Ax,Ay A0-A7
n Valor 0-7
nn Valor 16-bits sinalizado
$ Endereço de memória
| ou

No ME implícito, o mais básico dos endereçamentos, não há operandos para buscar. A própria instrução contém as informações necessárias para execução.

Sintaxe:
MNEMÔNICO
Ex:
;não faz nada
NOP

No ME Registrador, dois registradores são os operandos onde os valores necessários para execução da instrução estão armazenados.

Sintaxe:
MNEMÔNICO.B Dx,Dy ; Dx -> Dy
MNEMÔNICO.W Dx,Dy ; Dx -> Dy
MNEMÔNICO.L Dx,Dy ; Dx -> Dy
Ex:
MOVE.B D0,D1

No indireto, um valor byte , word ou Longword contido pelo endereço contido em A0-7 é acessado para realizar um instrução.

Sintaxe:
MNEMÔNICO.B (Ax),Dx ; (Ax) -> Dx
MNEMÔNICO.W (Ax),Dx ; (Ax) -> Dx
MNEMÔNICO.L (Ax),Dx ; (Ax) -> Dx
Ex:
MOVE.L (A7),D0 

No indireto com pós-incremento, um valor byte , word ou Longword contido pelo endereço em A0-7 é são utilizado pela instrução como o endereço da origem dos dados para realizar um instrução. Após o uso do valor, o registrador de endereço é incrementado de acordo com o tamanho do dado.

Sintaxe:
MNEMÔNICO.B (Ax)+,Dx|Ay ; (Ax)+ -> Dx|Ay
MNEMÔNICO.W (Ax)+,Dx|Ay ; (Ax)+ -> Dx|Ay
MNEMÔNICO.L (Ax)+,Dx|Ay ; (Ax)+ -> Dx|Ay
Ex:
MOVE.L (A7)+,D0 

No modo indireto com pré-decremento um endereço contido em A0-7 é decrementando, de acordo com o tamanho do dado, e assim um valor byte , word ou Longword contido nesse endereço é recuperado para sua utilização.

Sintaxe:
MNEMÔNICO.B -(Ax),Dx|Ay ; -(Ax) -> Dx|Ay
MNEMÔNICO.W -(Ax),Dx|Ay ; -(Ax) -> Dx|Ay
MNEMÔNICO.L -(Ax),Dx|Ay ; -(Ax) -> Dx|Ay
Ex:
MOVE.L -(A7),D0 

No indireto Indexado, um valor byte, word ou Longword contido no endereço A0-7 é indexado a um valor n(0-7), ou indexado com um registrador D0-7 para a instrução calcular o endereço de acesso.

Sintaxe:
1. MNEMÔNICO n(Ax),Dx
2. MNEMÔNICO n(Ax,Dx.L|.W),Dx
3. MNEMÔNICO n(Ax,Ay.L|.W),Dx

Em (2) e (3), quando usado com .W, o valor 16-bits(Entre -32768 e +32767) do registrador é tratado como sinalizado.

Ex:
MOVE.L 4(A0,A1.L),D7
MOVE.L -16(A0,A1.L),D7

No endereçamento absoluto, um valor imediato de 16-bits ou 32-Bits é utilizado como endereço de origem ou destino de um dado em memória.

Sintaxe:
MNEMÔNICO $NNNN,Dx
MNEMÔNICO $NNNNNN,Dx
Ex:
MOVE.L $F00000,D0

Nesse modo de endereçamento, o registrador PC é utilizado ao invés dos registradores A0-7. Um valor nn sinalizado de 16-Bits(-32768 a +32767) é utilizado como índice.

Sintaxe:
1. MNEMÔNICO nn(PC),Dx
2. MNEMÔNICO nn(PC,Dx.W|.L)
3. MNEMÔNICO nn(PC,Ax.W|.L)

Em (2) e (3), quando usado com .W, o valor 16-bits(-32768 a +32767) do registrador é tratado como sinalizado.

Ex:
MOVE.L $FFFF(PC),D0

No ME imediato, um valor byte , word ou Longword imediato faz parte da instrução. Tanto os registradores D0-7 quanto A0-7 utilizam esse modo.

Sintaxe:
MNEMÔNICO.B #$valor,Dx ; $valor -> Dx
MNEMÔNICO.W #$valor,Dx ; $valor -> Dx
MNEMÔNICO.L #$valor,Dx ; $valor -> Dx

MNEMÔNICO.B #$valor,Ax ; $valor -> Ax
MNEMÔNICO.W #$valor,Ax ; $valor -> Ax
MNEMÔNICO.L #$valor,Ax ; $valor -> Ax
Ex:
MOVE.L #$FFFFFF,D0
MOVEA.L #$C00000,A0
  1. 05/09/2024 - Revisão 1 - Correção de erros gramaticais, sintaxe de modo de endereçamento
  2. 01/04/2023 - versão inicial