Vous êtes sur la page 1sur 2

Exercice 03 :

Question 1 :
• les entiers, les pointeurs et les flottants == 4 octets
• Un caractère == un octet
• la taille d’un tableau == sa longueur * la taille d’élément qu’il contient.
• un tableau dynamique n’est qu’un pointeur K est une macro traitée par le préprocesseur.
Question 2 :

 Les variables locales ne sont pas initialisées.


 Les variables globales et statiques le sont à 0.
Question 3 :
a) Data (données initialisé) : Les variables locales l, s, td
b) Rodata (données non initialisé) : Les variables globales KBIS, tab, f
c) Données statiques :
• La variable statique j.
• s [0] pointe sur « un » qui est dans le segment des données statiques (compilation)
• tab [1] pointe sur 0 qui est dans le segment des données statiques.
d) td [0] pointe sur 0 qui est dans le segment des données dynamique (tas).
Question 4 :
- La durée de vie des objets locaux est égale à la durée de vie de l’appel de la fonction.
- La durée de vie des objets dynamiques dépend explicitement du programmeur.
- la durée de vie des objets statiques est égale à la durée de vie du processus.
Question sup :
a) L’adresse logique est utilisée comme une référence pour accéder à l’adresse physique. La
différence clé entre l’adresse logique et l’adresse physique est que l’adresse logique est
générée par le CPU pendant l’exécution d’un programme alors que l’adresse physique fait
référence à un emplacement dans l’unité de mémoire.
b)
Code and data such as strings are stored in separate parts of ELF binaries.
 To disassemble the parts containing code,we use objdump -dj .text <binary_name>.
 To examine hard-coded string data,we use readelf -x .rodata <binary_name>
When the compiler toolchain generates a binary, hardcoded strings are placed in a separate
area of the binary from the executable code and are referenced/accessed by their virtual
memory address and Each binary has discrete areas, or sections, which contain different
information.
In ELF binaries, the .text section holds the executable instructions of the program. The bytes
the instructions are composed of are being treated as ASCII in this hexdump, so there are
meaningless sequences of characters being printed.
objdump relies on an ELF binary's section headers to determine which sections of the binary
contain code and which sections contain data. Only sections with instructions (.text, for
example) should be disassembled using objdump.The -D argument to objdump will result in
all sections of an ELF binary being disassembled, even non-code sections
like .data and .rodata.