www.wikidata.de-de.nina.az
Dieser Artikel behandelt den Begriff bei der Programmierung Zum Begriff in der Netzwerktechnik siehe OSI Modell Als Datensegment bezeichnet man den Teil von Objektdateien oder eines laufenden Prozesses in dem globale und statische Variablen abgelegt sind Diese Variablen mussen beim Start des Programms bereits im Speicher vorhanden und initialisiert sein ausserdem ist ihr Speicherplatzbedarf bereits zur Ubersetzungszeit bekannt Daher wird bereits beim Ubersetzen ein Datenblock erstellt der spater als Teil des Programms beim Starten in den Speicher geladen und sofort verwendet werden kann Manchmal werden Daten BSS Stack und Heap Bereiche gemeinsam als Datensegment bezeichnet In Maschinensprache bestehen dann getrennte Segmente fur Daten und ausfuhrbaren Code Dafur halten zum Beispiel Intel Prozessoren Register CS CodeSegment und DS DataSegment bereit Einzelne Befehle beziehen sich dann entweder auf das Daten oder Codesegment So bezeichnet die Sprunganweisung JMP 0120 zum Beispiel die absolute Adresse 0120 die in dem durch das Segmentregister CS vorgegebenen Segment anzuspringen ist Bei Befehlen zum Datenaustausch wie zum Beispiel MOV DX BX dagegen bezieht sich die Adresse in BX als Zeiger auf das Datensegment Assemblersprachen stellen eigene Anweisungen zur Definition von Segmenten fur Daten Code Stack und deren Reihenfolge bereit zum Beispiel DATA CODE STACK u a In manchen Betriebssystemen z B in z OS ist die Trennung von Code und Datensegmenten nicht erforderlich Die Maschinenbefehle unterscheiden diese beiden Bereichstypen nicht sondern adressieren Daten und Codeteile mit identischen Verfahren Registern etc Ein Maschinenprogramm kann demzufolge Daten und Code gemischt enthalten aus Grunden der Softwarequalitat Wartbarkeit werden jedoch Datendeklarationen und der Befehlsteil des Programms meist strukturell getrennt implementiert Block Started by Symbol BearbeitenDie Bezeichnung Block Started by Symbol wird in vielen Compiler und Linker fur ein Segment benutzt das statische Variablen enthalt die mit Nullwerten initialisiert werden Oft wird die Abkurzung BSS oder bss benutzt Dieser Speicherbereich eignet sich z B fur Arrays die nicht mit vordefinierten Werten initialisiert sind In der Objektdatei werden ublicherweise nicht die Nullwerte gespeichert sondern nur die Grosse des BSS Bereichs Der Lader wertet dann diese Information aus und fordert einen entsprechend grossen Speicherbereich vom Betriebssystem an wobei er sicherstellt dass der Speicherbereich mit den Nullwerten initialisiert wird Historisch war Block Started by Symbol eine Pseudo Operation im UA SAP United Aircraft Symbolic Assembly Program ein Mitte der 1950er entwickelter Assembler Siehe auch BearbeitenCodesegment a out Abgerufen von https de wikipedia org w index php title Datensegment amp oldid 234587241