 SOMMAIRE
 SUIVANTE


 ADRESSAGES
 INDICATEURS
|
Transfert de données |
Introduction
Index des mnémoniques |
 
|
Les instructions de transfert de données vous permettent entre autre de copier, échanger, modifier la mémoire.
Il faudra obligatoirement utiliser un mode d'adressage parmi ceux proposés.
N'oubliez pas que les indicateurs changent pour certaines instructions.

Index des mnémoniques |
EXG | EXchanGe échange entre registres |
MOVEA | MOVE Address transfert d'adresse |
PEA | Push Effective Address empile une adresse effective |
LEA | Load Effective Address charge une adresse effective |
MOVEM | MOVE Multiple tranfert multiple |
SWAP | SWAP échange les mots d'un opérande |
LINK | LINK crée une pile |
MOVEP | MOVE Peripheral tranfert par le bus |
UNLK | UNLinK détruit une pile |
MOVE | MOVE copie la source en destination |
MOVEQ | MOVE Quick transfert rapide |
|

EXG
|
EXchanGe échange entre registres |
DESCRIPTION
Les 32 bits des deux registres sont échangés. Les registres peuvent être aussi bien des registres de données que des registres d’adresses, on peut échanger un registre de données avec un registre d’adresses..
MODES D'ADRESSAGE
-
TAILLE DES DONNÉES
Mot long
INDICATEURS
Inchangés
SYNTAXES
EXG Rx,Ry

LEA
|
Load Effective Address charge un registre d’adresses avec une adresse |
DESCRIPTION
Charge dans le registre An la valeur de l’adresse (et non le contenu de l’adresse) source. L’adresse peut être fournie dans tous les modes d’adressage sauf immédiat.
Cette instruction est utilisée pour écrire des programmes qui doivent être indépendant de leur position dans la mémoire.
C'est notre cas avec Fargo car ceux-ci peuvent être n'importe où dans la RAM utilisateur, la prochaine version de Fargo résoudra ce problème en chargeant le programme en mémoire statique.
La plupart du temps, nous utiliserons les modes d'adressages y(PC) et x(PC,Xn.s).
Elle a aussi la faculté d'ajouter une constante à un registre d'adresse par les modes d'adressage y(An) et x(An,Xn.s).
MODES D'ADRESSAGE
(An), y(An), x(An,Xn.s), y, z, y(PC), x(PC,Xn.s)
TAILLE DES DONNÉES
Mot long
INDICATEURS
Inchangés
SYNTAXE
LEA <adressage>,an

LINK
|
LINK réservation d’un espace dans la pile |
DESCRIPTION
La valeur courante de An est initialement sauvée sur le dessus de la pile, puis An prend la nouvelle valeur du pointeur de pile. Ensuite le pointeur de pile est décrémenté de la valeur <déplacement> passée en destination, afin de réserver cet espace sur la pile. An est appelé le pointeur de zone (ou encore le pointeur de cadre).
La mémoire ainsi créée est utilisée comme la pile habituelle (registre A7 ou SP) par un décalage négatif, c'est à dire par le mode d'adressage -(An).
Pour détruire cette mémoire temporaire et restaurer la pile, utilisez l'instruction UNLK.
MODES D'ADRESSAGE
-
TAILLE DES DONNÉES
-
INDICATEURS
Inchangés
SYNTAXE
LINK An,#<déplacement>

MOVE
|
MOVE recopie la source vers la destination |
DESCRIPTION
Recopie le contenu de l’adresse source dans l’adresse destination. Tous les modes d’adressage sont supportés. La destination ne peut pas être une donnée immédiate.
MODES D'ADRESSAGE (source)
Dn, An, (An), -(An), (An)+, y(An), x(An,Xn.s), y, z, y(PC), x(PC,Xn.s), #xyz
Pour le mode d'adressage An, la taille des donnée doit être un mot ou un mot long.
MODES D'ADRESSAGE (destination)
Dn, (An), -(An), (An)+, y(An), x(An,Xn.s), y, z
Pour le mode d'adressage An, vous devez utiliser l'instruction MOVEA.
TAILLE DES DONNÉES
Octet / Mot / Mot long
INDICATEURS
X | Inchangé |
N | Standard |
Z | Standard |
V | 0 |
C | 0 |
SYNTAXE
MOVE <adressage>,<adressage>

MOVEA
|
MOVE Address transfert d'adresse |
DESCRIPTION
Copie la valeur d'une adresse effective dans un registre d'adresse, un pointeur est toujours défini sur un mot long.
MODES D'ADRESSAGE (source)
An, (An), -(An), (An)+, y(An), x(An,Xn.s), y, z, y(PC), x(PC,Xn.s), #xyz
Pour le mode d'adressage An, la taille des donnée doit être un mot ou un mot long.
MODES D'ADRESSAGE (destination)
Dn, An, (An), -(An), (An)+, y(An), x(An,Xn.s), y, z, y(PC), x(PC,Xn.s), #xyz
TAILLE DES DONNÉES
Mot long
INDICATEURS
Inchangés
SYNTAXE
MOVEA <adressage>,An

MOVEM
|
MOVE Multiple tranfert multiple |
DESCRIPTION
Cette instruction transfert rapidement un groupe de registre dans la mémoire ou bien la mémoire dans un groupe de registres.
Cette opération ne marchera qu'avec des mots ou des mot longs. Lors du transfert vers les registres, les mots sont automatiquement étendus au niveau du signe donc les 32 bits seront affectés.
Notez que cette instruction est très utilisée pour déposer plusieurs registres sur la pile avec le mode d'adressage -(An) et les récupérer intactes avec le mode d'adressage (An)+ après plusieurs instructions, retenez que la plupart des sous-programmes (ceux des libraires par exemple) détruisent plusieurs registres lors de leur exécution.
La liste des registres est constituée de registres séparés par des /, vous pouvez aussi faire des intervalles avec des -. Par exemple D0-D2/A3-A6 désigne une liste de registre constituée des registres D0, D1, D2, A3, A4, A5 et A6.
MODES D'ADRESSAGE (liste de registres dans la mémoire)
(An), -(An), y(An), x(An,Xn.s), y, z
MODES D'ADRESSAGE (mémoire dans la liste de registres)
(An), (An)+, y(An), x(An,Xn.s), y, z, y(PC), x(PC,Xn.s)
TAILLE DES DONNÉES
Mot / Mot long
INDICATEURS
Inchangés
SYNTAXES
MOVEM <liste de registres>,<adressage>
MOVEM <adressage>,<liste de registres>

MOVEP
|
MOVE Peripheral tranfert par le bus |
DESCRIPTION
MODES D'ADRESSAGE
TAILLE DES DONNÉES
INDICATEURS
SYNTAXE

MOVEQ
|
MOVE Quick transfert rapide |
DESCRIPTION
Cette variante de l'instruction MOVE permet de copier une petite valeur dans un registre de donnée, elle utilise 2 octets. Cette valeur dont la taille est un octet, est signé et a donc une plage d'utilisation de -128 à +127.
Les 32 bits composant le registre de donnée spécifié sont affectés, cela reviendrais à utiliser MOVE.l sauf que cette instruction prend 6 octets.
MODES D'ADRESSAGE
-
TAILLE DES DONNÉES
Mot long
INDICATEURS
X | Inchangé |
N | Standard |
Z | Standard |
V | 0 |
C | 0 |
SYNTAXES
MOVEQ #<valeur>,Dn

PEA
|
Push Effective Address empile une adresse effective |
DESCRIPTION
Cette instruction calcule une adresse effective et la dépose sur la pile, l'adresse (pointeur) est toujours un mot long.
N'oubliez jamais d'incrémenter la pile de 4 (mot long) lorsque vient le moment de restaurer celle-ci après l'appel à une bibliothèque. Evidemment ceci en plus des incrémentations dues aux autres paramètres déposés sur la pile le cas échéant.
MODES D'ADRESSAGE
(An), y(An), x(An,Xn.s), y, z, y(PC), x(PC,Xn.s)
TAILLE DES DONNÉES
Mot long
INDICATEURS
Inchangés
SYNTAXE
PEA <adressage>

SWAP
|
SWAP échange les mots d'un opérande |
DESCRIPTION
Cette instruction échange entre eux les deux mots d'un registre d'adresse, donc le mot de poids fort devient le mot de poid faible et inversement.
Couplée aux instructions MULS ou MULU elle est très utile car elle permet d'échanger le résultat de la division avec la valeur du reste.
Notez que l'utilisation des instructions ROL ou ROR avec un déplacement de 16 (mot) produit le même résultat.
Enfin, faites attention à ne pas confondre cette instruction avec l'instruction EXG !
MODES D'ADRESSAGE
Dn
TAILLE DES DONNÉES
Mot
INDICATEURS
X | Inchangé |
N | bit 31 du registre de donnée |
Z | Standard |
V | 0 |
C | 0 |
SYNTAXE
SWAP Dn

UNLK
|
UNLinK détruit une pile |
DESCRIPTION
Détruit la "pile" créée par l'instruction LINK.
Le registre d'adresse spécifié est déposé sur la pile, puis un mot long de la pile est additionné au registre d'adresse.
MODES D'ADRESSAGE
-
TAILLE DES DONNÉES
-
INDICATEURS
Inchangés
SYNTAXE
UNLK An

Lisez la section sur les droits d'auteur et la licence d'utilisation avant de distribuer Zguide.
Zguide © 1998 - 1999 par Florian DREVET. Tous droits réservés