लघु जवाब: हाँ, 16 या 32 बिट्स। और, x86-64, 64 बिट्स के लिए।
स्टैक के प्राथमिक कारणों को नेस्टेड फ़ंक्शन कॉल से वापस लौटना और रजिस्टर मानों को सहेजना/पुनर्स्थापित करना है। यह आमतौर पर पैरामीटर पास करने और फ़ंक्शन परिणामों को वापस करने के लिए भी उपयोग किया जाता है। सबसे छोटे मानकों को छोड़कर, इन वस्तुओं में आमतौर पर प्रोसेसर के डिजाइन, अर्थात्, निर्देश सूचक रजिस्टर का आकार होता है। 8088/8086 के लिए, यह 16-बिट्स है। 80386 और उत्तराधिकारी के लिए, यह 32-बिट्स है। इसलिए, अन्य आकारों पर चलने वाले स्टैक निर्देशों में बहुत कम मूल्य है।
मेमोरी बस पर डेटा के आकार पर भी विचार किया जाता है। एक शब्द को पुनर्प्राप्त या संग्रहीत करने में उतना ही समय लगता है क्योंकि यह बाइट करता है। (8088 के अलावा जिसमें 16-बिट रजिस्ट्रार हैं लेकिन 8-बिट डेटा बस है।) संरेखण भी खेल में आता है। स्टैक को शब्द सीमाओं पर गठबंधन किया जाना चाहिए ताकि प्रत्येक मान को एक मेमोरी ऑपरेशन के रूप में पुनर्प्राप्त किया जा सके। व्यापार-बंद आमतौर पर स्मृति को बचाने के लिए समय बचाने के लिए लिया जाता है। पैरामीटर के रूप में एक बाइट पास करने के लिए, आमतौर पर एक शब्द का उपयोग किया जाता है। (या, कंपाइलर के लिए उपलब्ध अनुकूलन के आधार पर, एक शब्द-आकार का रजिस्टर का उपयोग किया जाएगा, स्टैक को पूरी तरह से टालना होगा।)
स्रोत
2013-04-06 20:04:20
वह कथन केवल 32 बिट मोड में लागू होता है, और आप 2-बाइट भी पुश/पॉप कर सकते हैं तत्वों। – harold