TRANSFERT
DE DONNÉES
Fonction Introduction
Fonction Index des mnémoniques

Page précédente Fonction prochaine partie
Boule



 
Monter Descendre Retour Introduction
puce Les instructions de transfert de données vous permettent entre autre de copier, échanger, modifier la mémoire.

puce Il faudra obligatoirement utiliser un mode d'adressage parmi ceux proposés.

puce N'oubliez pas que les indicateurs changent pour certaines instructions.





 
Monter Retour Index des mnémoniques
EXGEXchanGe
échange entre registres
MOVEAMOVE Address
transfert d'adresse
PEAPush Effective Address
empile une adresse effective
LEALoad Effective Address
charge une adresse effective
MOVEMMOVE Multiple
tranfert multiple
SWAPSWAP
échange les mots d'un opérande
LINKLINK
crée une pile
MOVEPMOVE Peripheral
tranfert par le bus
UNLKUNLinK
détruit une pile
MOVEMOVE
copie la source en destination
MOVEQMOVE Quick
transfert rapide




 

Retour EXG EXchanGe
échange entre registres
Monter Descendre

DESCRIPTION
puce 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
puce -

TAILLE DES DONNÉES
puce Mot long

INDICATEURS
puce Inchangés

SYNTAXES
puce EXG Rx,Ry





 

Retour LEA Load Effective Address
charge un registre d’adresses avec une adresse
Monter Descendre

DESCRIPTION
puce 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.
puce 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.
puce La plupart du temps, nous utiliserons les modes d'adressages y(PC) et x(PC,Xn.s).
puce 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
puce (An), y(An), x(An,Xn.s), y, z, y(PC), x(PC,Xn.s)

TAILLE DES DONNÉES
puce Mot long

INDICATEURS
puce Inchangés

SYNTAXE
puce LEA <adresse>,an





 

Retour LINK LINK
réservation d’un espace dans la pile
Monter Descendre

DESCRIPTION
puce 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).
puce 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).
puce Pour détruire cette mémoire temporaire et restaurer la pile, utilisez l'instruction UNLK.

MODES D'ADRESSAGE
puce -

TAILLE DES DONNÉES
puce -

INDICATEURS
puce Inchangés

SYNTAXE
puce LINK An,#<déplacement>





 

Retour MOVE MOVE
recopie la source vers la destination
Monter Descendre

DESCRIPTION
puce 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)
puce 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)
puce 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
puce Octet / Mot / Mot long

INDICATEURS
XInchangé
NStandard
ZStandard
V0
C0

SYNTAXE

puce MOVE <adresse>,<adresse>





 

Retour MOVEA MOVE Address
transfert d'adresse
Monter Descendre

DESCRIPTION
puce 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)
puce 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)
puce Dn, An, (An), -(An), (An)+, y(An), x(An,Xn.s), y, z, y(PC), x(PC,Xn.s), #xyz

TAILLE DES DONNÉES
puce Mot long

INDICATEURS
puce Inchangés

SYNTAXE
puce MOVEA <adresse>,An





 

Retour MOVEM MOVE Multiple
tranfert multiple
Monter Descendre

DESCRIPTION
puce Cette instruction transfert rapidement un groupe de registre dans la mémoire ou bien la mémoire dans un groupe de registres.
puce 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.
puce 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.
puce 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)
puce (An), -(An), y(An), x(An,Xn.s), y, z

MODES D'ADRESSAGE (mémoire dans la liste de registres)
puce (An), (An)+, y(An), x(An,Xn.s), y, z, y(PC), x(PC,Xn.s)

TAILLE DES DONNÉES
puce Mot / Mot long

INDICATEURS
puce Inchangés

SYNTAXES
puce MOVEM <liste de registres>,<adresse>
puce MOVEM <adresse>,<liste de registres>





 

Retour MOVEP MOVE Peripheral
tranfert par le bus
Monter Descendre
DESCRIPTION
puce

MODES D'ADRESSAGE
puce

TAILLE DES DONNÉES
puce

INDICATEURS
puce

SYNTAXE
puce





 

Retour MOVEQ MOVE Quick
transfert rapide
Monter Descendre

DESCRIPTION
puce 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.
puce 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
puce -

TAILLE DES DONNÉES
puce Mot long

INDICATEURS
XInchangé
NStandard
ZStandard
V0
C0

SYNTAXES

puce MOVEQ #<valeur>,Dn





 

Retour PEA Push Effective Address
empile une adresse effective
Monter Descendre

DESCRIPTION
puce Cette instruction calcule une adresse effective et la dépose sur la pile, l'adresse (pointeur) est toujours un mot long.
puce 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
puce (An), y(An), x(An,Xn.s), y, z, y(PC), x(PC,Xn.s)

TAILLE DES DONNÉES
puce Mot long

INDICATEURS
puce Inchangés

SYNTAXE
puce PEA <adresse>





 

Retour SWAP SWAP
échange les mots d'un opérande
Monter Descendre

DESCRIPTION
puce 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.
puce 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.
puce Notez que l'utilisation des instructions ROL ou ROR avec un déplacement de 16 (mot) produit le même résultat.
puce Enfin, faites attention à ne pas confondre cette instruction avec l'instruction EXG !

MODES D'ADRESSAGE
puce Dn

TAILLE DES DONNÉES
puce Mot

INDICATEURS
XInchangé
Nbit 31 du registre de donnée
ZStandard
V0
C0

SYNTAXE
puce SWAP Dn





 

Retour UNLK UNLinK
détruit une pile
Monter

DESCRIPTION
puce Détruit la "pile" créée par l'instruction LINK.
puce 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
puce -

TAILLE DES DONNÉES
puce -

INDICATEURS
puce Inchangés

SYNTAXE
puce UNLK An





 

 

Lisez la section sur les droits d'auteur et la license d'utilisation avant de distribuer Zguide.

Zguide © 1998, Florian DREVET. Tous droits réservés à l'échelle mondiale