Assembleur
2Génie informatique et génie logiciel H2015
Conventions du C
• Les variables globales sont dans la section .data
• Les variables locales et paramètres sont sur la pile
– En C les paramètres sont empilés de droite à gauche avant le ‘call’ (dépilés au
retour du ‘call’)
– L’espace pour les variable est alloué au début de la sous-routine
– On utilise souvent %ebp pour pointer vers ces variables/paramètres
• La valeur de retour
– Dans %eax pour les entiers (char/short/int…) et pointeurs (edx:eax pour 8 octets)
– Dans %st(0) pour les float/double (registres larges pour operations point flotant)
– En mémoire pour les objets/structures
• Le pointeur où placer le résultat est donné par la routine appelante
• Registres qu’ une routine peut modifier: %eax, %ecx, %edx
–Doit sauver/restaurer les autres si on les modifies
3