मैं एक असेंबली पुस्तक पढ़ रहा हूं। पुस्तक बताती है कि कंप्यूटर की स्मृति में .text और .data अनुभाग हैं। पुस्तक में एक उदाहरण निम्नलिखित स्रोत कोड का भी उपयोग करता है।हमें असेंबली में .data और .text सेक्शन को परिभाषित करने की आवश्यकता क्यों है?
[SECTION .data]
[SECTION .text]
के बाद से ऊपर कोड स्निपेट विधानसभा में लिखा है, मैं एक प्रश्न है।
क्या करें .डेटा और .text कोड भौतिक स्मृति में अलग हो गए हैं (यदि ऐसा है तो क्यों? और सीपीयू देखभाल करता है?)? या यह सिर्फ हमें (मानव) विधानसभा भाषा में अलग करने के लिए है?
// तो ... क्या यह ओएस निर्दिष्ट है? मान लीजिए कि मैं अपना ओएस लिख रहा हूं (ऐसा करने वाला नहीं :)), क्या मुझे इस सम्मेलन का पालन करने की ज़रूरत है? – Moon
उन्हें अलग रखना बुद्धिमान होगा, क्योंकि तब आप उस अनुभाग से संबंधित प्रत्येक अनुभाग में चीजें कर सकते हैं। उदाहरण के लिए, आप प्रोग्राम के इन विभिन्न हिस्सों में अलग-अलग मेमोरी स्वैप इन/आउट नियम, मेमोरी सुरक्षा कोड और संगत स्टोरेज प्रवर्तन डिजाइन करना चाह सकते हैं। – Pete855217
हाँ मुझे लगता है कि यह ओएस विशिष्ट है और आपको अपने स्वयं के ओएस में इस सम्मेलन का पालन करने की आवश्यकता नहीं है। अब भी ओएस रीड-ओनली से पढ़ने-लिखने और लिखने के लिए टेक्स्ट सेक्शन को बदलने की इजाजत देता है उदाहरण के लिए डिबगिंग एप्लिकेशन या कुछ डिबगिंग एपीआई http://msdn.microsoft.com/en-us/library/ms681674(v=vs के दौरान। 85) .aspx। लेकिन आपके ओएस में सामान्य उपयोग के लिए मैं इस नियम का पालन नहीं करूंगा। – Zuljin