A forma primordial de transferência de dados ocorre através da instrução MOVE, que recebe dois operandos, respectivamente o endereço efetivo do operando fonte e o endereço efetivo do destino. Três formas básicas desta instrução são
Instrução | Codificação |
---|---|
MOVE <ea>,<ea> |
00.ss.ttt.nnn.mmm.rrr |
MOVEA <ea>,An |
00.ss.ttt.001.mmm.rrr |
MOVEQ #<data>,Dn |
0111.rrr.0.vvvvvvvv |
Para a forma MOVE, os campos são:
byte | word | long |
01 | 11 | 10 |
No exemplo da instrução MOVE.W D5,-(A7), a seqüência de bits da instrução codificada será 00 (código da operação), 11 (comprimento word). O destino é especificado como o registrador de endereço A7 (111) no modo indireto pré-decrementado (100) -- portanto, a seqüência de bits para o endereço efetivo do destino será 111100. O operando fonte é o registrador de dados D5 (101) acessado no modo direto (000). Portanto, a seqüência de bits para o operando fonte será 000101. Portanto, a instrução é codificada pela palavra $3F05.
Para a forma MOVEA, o campo de tamanho (ss) pode assumir apenas os valores 11 (word) ou 10 (long). Os demais campos equivalem à descrição de MOVE.
A forma MOVEQ tem apenas um tamanho de operando, long. O campo rrr identifica o registrador de dados (destino) e vvvvvvvv é o campo de valor imediato de oito bits que são estendidos para um operando long.