Changes between Version 147 and Version 148 of Archi-1-TP9


Ignore:
Timestamp:
Nov 21, 2021, 9:16:53 AM (3 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Archi-1-TP9

    v147 v148  
    169169''
    170170Cours 9 / slide 19\\\\
    171 Il suffit de remplacer les instructions `lui` et cri` par `
     171Il suffit de remplacer les instructions `lui` et `ori` par `la` et `li`.
    172172{{{#!asm
    173173la    $4, __tty_regs_map
     
    1891891. 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"`
    190190   - `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])
    192192 Écrivez le code assembleur créant la section `".mytext"` et suivi de l'addition des registres `$5` et `$6` dans `$4`
    193193{{{#!protected ------------------------------------------------------------------------------------
    194 '''''''''''''''
    195 {{{#!asm
     194''
     195Cours 9 / slide 19\\\\
     196Pour 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
    196198 .section .mytext,"ax"
    197199 addu $4,$5,$6
    198200}}}
    199 '''''''''''''''
     201''
    200202}}}
    2012031. À quoi sert la directive `.globl label` ?