A instrução MOVEM é semelhante a instrução MOVE, mas consegue mover um grupo de registradores
para ou de um endereço de memória, que é incrementada ou decrementada, de acordo com os tamanho informados,
até o último registrador movido ou recuperado.
Os registradores são armazenados na ordem que são informados e devem ser recuperados na mesma ordem
para evitar inconsistências.
Caso um dado Word de origem seja recuperado de um endereço de memória, o bit mais significativo é
extendido no registrador de destino formando um valor de 32-Bits.
Operação
Dx-Dy -> destino
Ax-Ay -> destino
Dx-Dy/Ax-Ay -> destino
Dx/Dy/Ax/Ay -> destino
Endereçamento Origem
(Ax), (Ax)+, n(Ax), n(Ax,Dx[.W|.L]|Ax[.W|.L]), absoluto.W, absoluto.L, n(PC), n(PC,Dx[.W|.L]|Ax[.W|.L])
Endereçamento Destino
(Ax), n(Ax), -(Ax), n(Ax,Dx[.W|.L]|Ax[.W|.L]), absoluto.W, absoluto.L
Tamanho do dado
Word e Longword
Sintaxe
MOVEM.L Di-Df,-(Ax)
MOVEM.L absoluto,Di-Df;
CCR
X: -
N: -
Z: -
V: -
C: -
Exemplo:
; D0 = CCDDEEFF D1 = 8899AABB
; $8000 = 00000000, $8004 = FFFFFFFF
MOVEM.L D0-D1,$8000
; $8000 = CCDDEEFF $8004 = 8899AABB
MOVE $8000,D0-D1