Changes between Version 147 and Version 148 of Archi-1-TP9
- Timestamp:
- Nov 21, 2021, 9:16:53 AM (3 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Archi-1-TP9
v147 v148 169 169 '' 170 170 Cours 9 / slide 19\\\\ 171 Il suffit de remplacer les instructions `lui` et cri` par `171 Il suffit de remplacer les instructions `lui` et `ori` par `la` et `li`. 172 172 {{{#!asm 173 173 la $4, __tty_regs_map … … 189 189 1. Vous avez utilisé les directives `.text` et `.data` pour définir les sections où placer les instructions et les variables globales, mais il existe la possibilité de demander la création d'une nouvelle section dans le code objet produit par le compilateur avec la directive `.section name,"flags"` 190 190 - `name` est le nom de la nouvelle section. On met souvent un `.name` (avec un `.`au début) pour montrer que c'est une section et 191 - `"flags"` informe sur le contenu : `"ax"` pour des instructions, `"ad"` pour des données (ceux que ça intéresse pourront regarder l à [https://frama.link/20UzK0FP])191 - `"flags"` informe sur le contenu : `"ax"` pour des instructions, `"ad"` pour des données (ceux que ça intéresse pourront regarder le manuel de l'assembleur [https://ftp.gnu.org/old-gnu/Manuals/gas-2.9.1/html_chapter/as_7.html#SEC119 Assembleur/Directives/.section]) 192 192 Écrivez le code assembleur créant la section `".mytext"` et suivi de l'addition des registres `$5` et `$6` dans `$4` 193 193 {{{#!protected ------------------------------------------------------------------------------------ 194 ''''''''''''''' 195 {{{#!asm 194 '' 195 Cours 9 / slide 19\\\\ 196 Pour répondre, il faut avoir compris l'explication donnée dans la question. L'intérêt de cette question est de revenir sur la notion de section. Une section est un segment d'adresses ayant un but spécifique. On définit des segments d'adresses pour le code, pour les données (il y a d'ailleurs plusieurs types de sections en fonction du type de données). Ces segments sont placés dans l'espace d'adressage par l'éditeur de liens (`ld`) et la manière dont ils sont placés est définie dans un fichier donné en paramètre de l'éditeur de lien, ce fichier de description de placement est le `ldscript`). 197 {{{#!as 196 198 .section .mytext,"ax" 197 199 addu $4,$5,$6 198 200 }}} 199 '' '''''''''''''201 '' 200 202 }}} 201 203 1. À quoi sert la directive `.globl label` ?