Les macros et les procédures sont deux moyens de créer du code réutilisable en langage assembleur. Il existe cependant quelques différences essentielles entre les deux.
Macros
* Sont basés sur du texte
* Sont développés par l'assembleur avant le début du processus d'assemblage
* Peut être utilisé pour définir des constantes, des étiquettes et des instructions
* Ne peut pas être utilisé pour créer des structures de contrôle (telles que des boucles et des branches)
Procédures
* Sont basés sur le binaire
* Sont stockés dans le fichier exécutable
* Peut être appelé depuis d'autres parties du programme
* Peut être utilisé pour créer des structures de contrôle
En général, les macros sont plus efficaces que les procédures car elles ne nécessitent aucune instruction machine supplémentaire. Cependant, les macros peuvent être difficiles à déboguer car elles ne sont pas visibles dans le code assembleur. Les procédures sont plus faciles à déboguer car elles peuvent être parcourues dans le débogueur.
Voici un exemple de macro en langage assembleur :
```
.macro inc(r)
ajouter r, r, 1
.endm
```
Cette macro incrémente la valeur dans le registre « r ». Il est utilisé comme suit :
```
augmenter r1; Incrémenter la valeur dans r1
```
Voici un exemple de procédure en langage assembleur :
```
comprenant :
ajoutez r1, r1, #1; Incrémenter la valeur dans r1
bx lr; Retour de procédure
```
Cette procédure incrémente la valeur dans le registre « r1 » puis revient à l'appelant. Il s'appelle ainsi :
```
bl inc; Appeler la procédure inc
```
|