“ C Runtime ” nécessite certaines conditions, qui sont fournies par le langage assembleur. Le langage C a principalement besoin d'une pile lors de son exécution.
Le lien entre le langage C et la pile : les variables locales en C sont toutes implémentées à l'aide de la pile. Si notre partie en assembleur ne définit pas au préalable une adresse de pile raisonnable et valide pour la partie C, les variables locales définies dans le code C ne fonctionneront pas et le programme tout entier plantera.

En général, nous ne configurons pas la pile lorsque nous écrivons des programmes pour microcontrôleurs (tels que le microcontrôleur 51) ou des applications, mais le programme C peut tout de même s'exécuter. La raison en est la suivante : une pile par défaut est mise à disposition lors de l'initialisation matérielle du microcontrôleur. En réalité, tous les programmes C que nous écrivons ne font pas partie du programme d'application. Le compilateur (gcc) les ajoutera automatiquement un par un pour nous lors de la liaison. Cet en-tête est un morceau de code assembleur qui guide l'exécution de notre programme C. Ce code aide notre programme C à initialiser la pile et à répondre à d'autres besoins d'exécution.



