Salut, j'aurais un peu besoin d'aide pour comprendre 
J'ai bien compris que lors de l'exécution d'un programme, les instructions sont copiées dans la partie .text de la mémoire, les variables globales dans la partie .data, etc.
Seulement, lors de l'exécution du programme, comment est ce que la distinction est faite entre tout ça ? 
Prenons ce code, par exemple :
global _start
section .text
_start:
mov eax, 1
int 0x80
section .data
onche : dd 0xCAFECAFE
En en faisant un binaire brut (nasm -f bin main.S) ça nous donne ça en hexadécimal :
66 B8 01 00 00 00 CD 80 FE CA FE CA
66 B8 01 00 c'est le mov eax, 1
CD 80 c'est le int 0x80
Mais le truc c'est que le CAFECAFE ça se retrouve tout seul à la fin, sans aucune indication de foutre ça dans .data ou je ne sais où
Du coup comment est-ce que la mémoire peut "deviner" qu'elle doit le mettre dans .data ?
J'ai regardé ce que donnait le truc en .elf mais ça a l'air d'être la même chose, aucune indication :
