{"id":704,"date":"2015-10-27T11:19:53","date_gmt":"2015-10-27T11:19:53","guid":{"rendered":"http:\/\/coolt.ch\/notizen\/?p=704"},"modified":"2016-02-12T14:47:27","modified_gmt":"2016-02-12T14:47:27","slug":"speicherorte-die-segmente-im-ram","status":"publish","type":"post","link":"https:\/\/coolt.ch\/notizen\/speicherorte-die-segmente-im-ram\/","title":{"rendered":"Speicherorte: Die &#8222;Segmente&#8220; im RAM"},"content":{"rendered":"<p><strong>Grundstruktur Datenablage<br \/>\n<\/strong>Ein ausf\u00fchrbares Programm (*.exe) teilt seine Daten in vier Segmente ein: *.code, *.data, *, heap und Stack.<\/p>\n<p><a href=\"http:\/\/coolt.ch\/notizen\/wp-content\/uploads\/2015\/10\/code_data_heap1.png\"><img loading=\"lazy\" class=\"alignnone size-full wp-image-709\" src=\"http:\/\/coolt.ch\/notizen\/wp-content\/uploads\/2015\/10\/code_data_heap1.png\" alt=\"code_data_heap\" width=\"310\" height=\"289\" srcset=\"https:\/\/coolt.ch\/notizen\/wp-content\/uploads\/2015\/10\/code_data_heap1.png 310w, https:\/\/coolt.ch\/notizen\/wp-content\/uploads\/2015\/10\/code_data_heap1-300x280.png 300w\" sizes=\"(max-width: 310px) 100vw, 310px\" \/><\/a> <a href=\"http:\/\/coolt.ch\/notizen\/wp-content\/uploads\/2015\/10\/code_data_heap_chinese2.jpg\"><img loading=\"lazy\" class=\"alignright wp-image-710\" src=\"http:\/\/coolt.ch\/notizen\/wp-content\/uploads\/2015\/10\/code_data_heap_chinese2.jpg\" alt=\"code_data_heap_chinese\" width=\"150\" height=\"214\" srcset=\"https:\/\/coolt.ch\/notizen\/wp-content\/uploads\/2015\/10\/code_data_heap_chinese2.jpg 330w, https:\/\/coolt.ch\/notizen\/wp-content\/uploads\/2015\/10\/code_data_heap_chinese2-211x300.jpg 211w\" sizes=\"(max-width: 150px) 100vw, 150px\" \/><\/a><\/p>\n<p><strong>Codesegment<\/strong><br \/>\nLiegt bei der tiefsten Adresse. Hier liegt der <strong>Maschinencode<\/strong>. H\u00e4ufig liegen hier auch die Konstanten. Das Codesegment kann mit einem Schreibschutz versehen werden, also nur gelesen werden.<\/p>\n<p><strong>Datensegment<\/strong><br \/>\nHier liegen die<strong> initialisierten globalen Variablen <\/strong>sowie wenn eine<strong> lokale Variable <\/strong>als<strong> static <\/strong>definiert wurde. Sind Variablen <strong>nicht initialisiert<\/strong>, so liegen sie im <strong>BSS Segment<\/strong>.<\/p>\n<p><strong>Heap<br \/>\n<\/strong>Enth\u00e4lt nur dynamische Variablen, die mit malloc() zur Laufzeit generiert und wieder gel\u00f6scht werden.<\/p>\n<p><strong>Stack<br \/>\n<\/strong>Legt alle sich \u00e4ndernden Daten zur Laufzeit ab und holt sie permanent wieder. <strong>St\u00e4ndiges Wechseln der Daten<\/strong>. Deshalb braucht es einen<strong> Stack Pointer<\/strong>, der jeweils die aktuelle Speicherstelle weiss.<strong><br \/>\n<\/strong>Der Stack liegt an der h\u00f6chsten Adresse.<strong><br \/>\n<\/strong>Im Stack liegen alle<strong> lokalen Variablen.<br \/>\n<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Grundstruktur Datenablage Ein ausf\u00fchrbares Programm (*.exe) teilt seine Daten in vier Segmente ein: *.code, *.data, *, heap und Stack. Codesegment Liegt bei der tiefsten Adresse. Hier liegt der Maschinencode. H\u00e4ufig liegen hier auch die Konstanten. Das Codesegment kann mit einem Schreibschutz versehen werden, also nur gelesen werden. Datensegment Hier liegen die initialisierten globalen Variablen sowie &hellip; <a href=\"https:\/\/coolt.ch\/notizen\/speicherorte-die-segmente-im-ram\/\" class=\"more-link\"><span class=\"screen-reader-text\">Speicherorte: Die &#8222;Segmente&#8220; im RAM<\/span> weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[50,65],"tags":[11,17,3],"_links":{"self":[{"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/posts\/704"}],"collection":[{"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/comments?post=704"}],"version-history":[{"count":3,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/posts\/704\/revisions"}],"predecessor-version":[{"id":1145,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/posts\/704\/revisions\/1145"}],"wp:attachment":[{"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/media?parent=704"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/categories?post=704"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/coolt.ch\/notizen\/wp-json\/wp\/v2\/tags?post=704"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}