Académique Documents
Professionnel Documents
Culture Documents
Chapitre 3
1
Enseignante: Chafika Benkherourou
Introduction
Pour économiser beaucoup de temps et d'efforts, les
programmeurs utilisent les macro-instructions, en
particulier lorsqu'ils ont à traiter une séquence de
commandes répétée plusieurs fois dans le corps du
programme.
Définitions
• Une macro-instruction est une instruction unique qui
est définie par l'utilisateur pour représenter une
séquence de plusieurs instructions.
• Elle est utilisée pour simplifier la programmation en
permettant aux programmeurs de définir leur propre
langage d'assemblage.
• On remplace du code fréquemment utilisé par une
macro.
• Ceci rend le code source plus rapide à écrire et plus
compact.
Syntaxe d’une macro
• En MIPS, une macro-instruction est déclarée avec la directive
".macro" dans la section du code du programme où elle sera
utilisée.
• La syntaxe générale pour déclarer une macro-instruction est la suivante:
.macro <nom> [paramètre1, paramètre2, ...]
<macro body>
.end_macro
Exemple:
.macro done
Li $v0,10
Syscall
.end_macro
Caractéristiques d’une macro
• La définition d'une macro doit apparaître avant son
utilisation dans le programme
• Toutes les définitions de macro sont locales dans
chaque fichier et ne peuvent pas être globales.
• Une macro définie avec le même nom qu'une autre
macro définie avant elle sera ignorée.
• Les macros font partie de l'assembleur, pas de l'ISA.
Ainsi, la syntaxe peut être différente avec d'autres
assembleurs.
Caractéristiques d’une macro
.macro calcul_moyenne $t1, $t2, $t3, $t4
add $t5, $t1, $t2
add $t5, $t5, $t3
add $t5, $t5, $t4
div $t5, $t5, 4
.end_macro
Dans cet exemple, la macro-instruction "calcul_moyenne" prend
quatre registres en entrée. Elle effectue ensuite une séquence
d'instructions pour calculer la moyenne des valeurs stockées
dans ces registres.
Caractéristiques d’une macro
La séquence d'instructions inclut les opérations d'addition ($t5 =
$t1 + $t2, $t5 = $t5 + $t3, $t5 = $t5 + $t4) pour additionner les
valeurs stockées dans les registres, suivie d'une division ($t5 =
$t5 / 4) pour diviser la somme par 4 et obtenir la moyenne.
En utilisant cette macro-instruction dans le code
source MIPS, les programmeurs peuvent
simplement appeler la macro-instruction
"calcul_moyenne" avec les quatre registres en
entrée, plutôt que d'écrire la séquence complète
d'instructions chaque fois qu'ils ont besoin de
calculer la moyenne.
Caractéristiques d’une macro
Voici un exemple d'utilisation de cette macro-
instruction :