2010-01-20 12 views
5

के लिए आवश्यक स्टैक आकार मैं सीखने के उद्देश्यों के लिए एक छोटे बूटलोडर पर काम कर रहा हूं। क्या बायोस इंटरप्ट कॉल के लिए आवश्यक (फ्री) स्टैक आकार के बारे में कोई विनिर्देश/जानकारी उपलब्ध है?बायोस इंटरप्ट कॉल

उत्तर

0

http://www.o3one.org/hwdocs/bios_doc/pci_bios_21.pdf (पृष्ठ 3 पर "कॉलिंग सम्मेलन"), ऐसा लगता है कि BIOS कॉल स्टैक स्पेस के 1024 बाइट तक उपयोग कर सकता है। मेरे गुगलिंग ने किसी अन्य स्रोत को नहीं बदला है।

1

इंटरप्ट हैंडलर में प्रवेश करने से पहले, सभी रजिस्ट्रारों को दूर रिटर्न पते के साथ स्टैक पर धकेल दिया जाता है, आपके रजिस्ट्रार आकार को जोड़ते हैं और न्यूनतम स्टैक आकार प्राप्त करने के लिए रिटर्न पते को स्टोर करने के लिए आवश्यक स्थान जोड़ते हैं।

ले ध्यान दें कि आप कुछ और अधिक स्थान है, जबकि बाधा हैंडलर में

0

मैंने देखा है की आवश्यकता होगी अगर आप ढेर में अधिक डेटा बढ़ा रहे हैं कि आप एक ढेर में कम से कम होनी चाहिए अगर आप int 0x13 उपयोग कर रहे हैं 40 9 6 बाइट्स आधुनिक BIOSes में अक्सर AHCI संगत int 0x13 हैंडलर होता है, और चूंकि एएचसीआई काफी जटिल है क्योंकि BIOS int 0x13 में बहुत सी स्टैक स्पेस की आवश्यकता होती है।

सही दुनिया में बीआईओएस का अपना ढेर होना चाहिए, लेकिन कई BIOS आपके द्वारा प्रदान किए गए ढेर पर भरोसा करते हैं।

0

सरल उत्तर यह है कि बूट क्षेत्र लोड करने से पहले BIOS बूट क्षेत्र को लोड करने से पहले इंटरफ़ेस कॉल (यूएसबी फ्लैश ड्राइव से बूट सेक्टर लोड करने के लिए इंट 13h सहित) को स्टैक करना था, बूट क्षेत्र के उपयोग के लिए पर्याप्त है।

खुश जवाब यह है कि BIOS बीच में आता है (नए फूला हुआ पीसीआई को छोड़कर) कम से कम अंतरिक्ष में निष्पादित करने के लिए तो वहाँ सेटअप करने की कोई जरूरत बूट क्षेत्र में एक ढेर है तैयार कर रहे हैं है।

संबंधित मुद्दे