![]() Page réalisée par: Philippe Moreau UPJV |
En assembleur, la notion de déclaration de variables n'existe pas au sens décrit dans le langage algorithmique (ou la plupart des langages de programmation évolués). Il existe cependant des directives d'assemblages (pseudo instructions interprétables uniquement par le logiciel réalisant l'assemblage) "classiques" permettant une réservation d'emplacements en mémoire (espace de stockage) avec une éventuelle initialisation.
syntaxe:
DS.f N
Action réalisée:
réserve N emplacements mémoire au format .f à l'adresse où la ligne sera assemblée
syntaxe:
DC.f liste de N valeurs
Action réalisée:
réserve N emplacements mémoire au format .f à l'adresse où la ligne sera assemblée et y place les N valeurs de la liste
X: | DC.W | 4 |
Y: | DC.L | 5 |
XY: | DC.W | 1,2 |
T: | DS.B | 10 |
ABC: | DC.B | 65,66,67,68,69,... |
A la suite de ces lignes, la valeur 4 est stockée sur 16 bits à un emplacement référencé par X (d'adresse X). Puis la valeur 5 est stockée sur 32 bits à l'adresse Y (à la suite de X), puis on stocke les valeurs 1 et 2 sur 16 bits à l'adresse XY. Ensuite, 10 octets sont réservés à l'adresse T, et enfin les valeurs 65, 66, 67, 68, 69, ... sont placées en mémoire à l'adresse de l'assemblage de ABC.
- Les directives d'assemblages DC et DS sont, comme leur nom l'indique, propres au logiciel d'assemblage. Mais celles-ci sont très classiques et existent dans la plupart des logiciels d'assemblage
- Le logiciel que l'on va utiliser, nous permet également d'écrire la dernière ligne sous une autre forme
la ligne
|
pourra s'écrire
aux codes ASCII de ABCDE... |
pour réaliser l'affectation D0 ← X (sur 16 bits) on écrira
|
pour réaliser l'affectation X ← 5 (sur 16 bits) on écrira
|
pour réaliser l'affectation D0 ← X (sur 16 bits) on peut aussi écrire
|
A retenir: lors de l'utilisation d'un label en tant que mode d'adressage, pour s'assurer de l'opération effectuée, il suffit de se souvenir qu'à l'assemblage l'étiquette est remplacée par une adresse et donc: une étiquette seule correspond à l'adressage absolu, une étiquette précédée d'un signe # correspond à l'adressage immédiat.
Dans toutes les manipulations des "variables" ainsi "déclarées", il est indispensable de respecter les formats définis lors de l'écriture. Ainsi, si deux variables X et Y ont été déclarées par:
les deux lignes
|
ce qui correspondrait à:
|
une erreur dans l'utilisation des formats peut avoir des conséquences facheuses. Exemples: pour réaliser l'affectation X ← 1 (X doit contenir 1)
si on écrit:
|
Alors:
| |||||
et si on écrit:
|
Alors:
|