184 | | 1. définition de section pour le placement des fonctions ou des variables? |
185 | | {{{#!protected ------------------------------------------------------------------------------------ |
186 | | ''''''''''''''' |
187 | | - |
188 | | ''''''''''''''' |
189 | | }}} |
190 | | 1. effacement des variables globales? |
| 184 | 1. En assembleur, vous utilisez les sections prédéfinies `.data` et `.text` pour placer respectivement les data et le code ou alors vous pouvez créer vos propres sections avec la directive `.section` (nous avons utilisé cette possibilité pour la section `.boot`). Il est aussi possible d'imposer ou de créer des sections en langage C avec le mot clé `__attribute__`. Ce mot clé du C permet de demander certains comportements au compilateur. Il y a en a beaucoup (si cela vous intéresse vous pouvez regarder dans la [https://gcc.gnu.org/onlinedocs/gcc-3.2/gcc/Variable-Attributes.html doc de GCC sur les attributs]. En cours, nous avons vu un attribut permettant de désigner ou créer une section dans laquelle est mise la fonction concernée. Quelle était la syntaxe de cet attribut (regardez sur le slide 37). |
| 185 | {{{#!protected ------------------------------------------------------------------------------------ |
| 186 | ''''''''''''''' |
| 187 | - `__attribute__ ((section (".crt0")))`. Remarquez la syntaxe un peu curieuse avec les doubles underscore et les doubles parenthèse. |
| 188 | ''''''''''''''' |
| 189 | }}} |
| 190 | 1. |
| 191 | effacement des variables globales? |