यह वास्तव में आपको लगता है कि यह वास्तव में एक बहुत ही जटिल सवाल है। 8086 पर, यह बहुत आसान है - यह एफएफएफएफ: 0000 (स्मृति के अंत से पहले 16-बाइट) पर शुरू होता है।
मुश्किल हिस्सा 286 या उससे ऊपर (यानी, कुछ भी दूरस्थ रूप से आधुनिक) पर है। इन मामलों में, यह अभी भी स्मृति के अंत से पहले 16 बाइट शुरू करता है, लेकिन निश्चित रूप से 24-बिट एड्रेसिंग (286) या 32-बिट एड्रेसिंग (386+) के साथ भौतिक पता अलग होता है। बहुत से जटिल नहीं लगते हैं, लेकिन यह वास्तव में है। जटिलता इस तथ्य से उत्पन्न होती है कि प्रोसेसर वास्तविक मोड में निष्पादन शुरू कर देता है, लेकिन उस पते (और आस-पास के सभी) वास्तविक मोड में प्रोसेसर को दिखाई नहीं दे रहे हैं। इसलिए, यह शुरुआत में एक अजीब मोड में निष्पादित होता है जहां यह वास्तविक दृष्टिकोण में वास्तविक दृष्टिकोण में होता है, लेकिन आपके द्वारा निष्पादित करने वाले पते के कुछ उच्च बिट्स को अनदेखा किया जाता है और इसके बजाय मूल रूप से हार्ड-वायर्ड 1 के होते हैं, इसलिए भौतिक पते का शीर्ष अंतरिक्ष प्रोसेसर के लिए दृश्यमान है। फिर, जब आप एक दूर कूदते हैं, प्रोसेसर चुपचाप "सामान्य" वास्तविक मोड में स्विच करता है।
BIOS वास्तविक मोड में शुरू होता है, लेकिन आमतौर पर एक (न्यूनतम) संरक्षित मोड वातावरण स्थापित करने से पहले, और संरक्षित मोड में स्विच करने से पहले केवल थोड़े समय के लिए निष्पादित करता है। वहां से, BIOS सामान्य पावर-ऑन सेल्फ टेस्ट निष्पादित करता है, BIOS को डीकंप्रेस करता है और इसे पर पर एफएफएफएफ: 0000 पर स्थित प्रतिलिपि बनाता है, वास्तविक मोड पर वापस स्विच करता है और एड-ऑन परिधीय रोम में कोड निष्पादित करता है यदि वे ' स्वचालित रूप से निष्पादित करने के लिए चिह्नित किया जाता है (आमतौर पर प्रक्रिया में संरक्षित मोड पर वापस स्विचिंग, लेकिन समाप्त होने पर वास्तविक मोड पर वापस)। उनमें से एक सामान्य रूप से हार्ड-डिस्क नियंत्रक होगा जिसमें डिस्क से बूट ब्लॉक में स्वचालित रूप से पढ़ने के लिए कोड होगा, और ओएस लोड करने के लिए इसे निष्पादित करें।
स्रोत
2010-10-23 14:45:19
बोनस अंक, धन्यवाद! –