Author: Christian.Queinnec@lip6.fr

## Mémoire et programme

Un programme en langage machine est une suite d'instructions manipulant des valeurs en mémoire. Cette mémoire est généralement composée des éléments suivants:

- les registres (zone mémoire d'accès direct et rapide)
- la pile (pile d'exécution - stack)
- zone d'allocation statique (segment de données ou data segment)
- zone d'allocation dynamique (tas ou heap)

Seules les zones de la pile et d'allocation dynamique peuvent évoluer en taille pendant l'exécution d'un programme. Selon le langage de programmation utilisé, un certain contrôle de la gestion de ces éléments mémoire est ou non prévu. Dans le cadre du chargement dynamique de code (voir page ??), celui-ci prend place dans une zone d'allocation dynamique.