Segment de dades
segment d'emmagatzematge / From Wikipedia, the free encyclopedia
En informàtica, un segment de dades (sovint indicat com .data ) és una part d'un fitxer objecte o l'espai d'adreces corresponent d'un programa que conté variables estàtiques inicialitzades, és a dir, variables globals i variables locals estàtiques. La mida d'aquest segment ve determinada per la mida dels valors del codi font del programa i no canvia en temps d'execució.[1]
El segment de dades és de lectura/escriptura, ja que els valors de les variables es poden alterar en temps d'execució. Això contrasta amb el segment de dades de només lectura (rodata segment o .rodata ), que conté constants estàtiques en lloc de variables; també contrasta amb el segment de codi, també conegut com a segment de text, que és només de lectura en moltes arquitectures. Les dades no inicialitzades, tant variables com constants, es troben al segment BSS.
![Thumb image](http://upload.wikimedia.org/wikipedia/commons/thumb/5/50/Program_memory_layout.pdf/page1-320px-Program_memory_layout.pdf.jpg)
Històricament, per poder suportar espais d'adreces de memòria més grans del que permetria la mida nativa del registre d'adreces internes, les primeres CPU van implementar un sistema de segmentació pel qual emmagatzemarien un petit conjunt d'índexs per utilitzar-los com a compensacions a determinades àrees. La família de CPU Intel 8086 va proporcionar quatre segments: el segment de codi, el segment de dades, el segment de pila i el segment addicional. Cada segment es va col·locar en una ubicació específica de la memòria pel programari que s'està executant i totes les instruccions que operaven amb les dades d'aquests segments es van realitzar en relació a l'inici d'aquest segment. Això va permetre que un registre d'adreces de 16 bits, que normalment podria accedir a 64 KB d'espai de memòria, accedir a 1 MB d'espai de memòria.
Aquesta segmentació de l'espai de memòria en blocs discrets amb tasques específiques traslladades als llenguatges de programació del dia i el concepte encara s'utilitza àmpliament als llenguatges de programació moderns.[2]