मुझे यह जानने के लिए आया है कि आप इंटेल पेंटियम के ढेर पर सीधे बाइट नहीं दबा सकते हैं, क्या कोई मुझे यह समझा सकता है?पेंटियम आईए -32 पर एक बाइट पर बाइट को धक्का देना क्यों संभव नहीं है?
कारण मुझे दिया गया कारण यह है कि esp रजिस्टर शब्द-पता योग्य (या, यह हमारे मॉडल में धारणा है) और यह एक "यहां तक कि पता" होना चाहिए। मुझे लगता है कि कुछ 32-बिट बाइनरी संख्या के मूल्य को कम करने के लिए रजिस्टर के संरेखण के साथ गड़बड़ नहीं होगी, लेकिन स्पष्ट रूप से मैं पर्याप्त समझ में नहीं आता।
मैंने कुछ NASM परीक्षणों की कोशिश की है और आते हैं कि यदि मैं एक चर (काइट डीबी 123) घोषित करता हूं और इसे स्टैक पर दबाता हूं, तो एएसपी 4 से घट जाती है (यह दर्शाती है कि यह 32-बिट्स को धक्का दे रहा है?)।
test.asm:: 10: त्रुटि: असमर्थित गैर 32-बिट ELF स्थानांतरण
किसी के शब्दों लेकिन, "धक्का बाइट काटने" (चर नाम की मेरी पसंद के लिए खेद है) एक प्रकार त्रुटि में परिणाम होगा इस परेशान समय के दौरान ज्ञान की सराहना की जाएगी। मैं पहले साल के स्नातक हूं इसलिए इनमें से किसी भी में मेरी नैतिकता के लिए खेद है।
बहुत जानकारीपूर्ण, लेकिन दुर्भाग्यवश अभी भी ऊपर है जो मैं अपने वर्तमान ज्ञान के साथ समझ सकता हूं। –
@ टिम - समझने योग्य। शायद अभी भी एक त्वरित पढ़ने लायक है। –
रुको, रुको। प्रत्येक मेमोरी लोकेशन 32-बिट चौड़ा है, इसलिए यदि आप कोई मान दबाते हैं, तो यह 4 बाइट्स द्वारा स्टैक को कम करेगा, क्योंकि 4 * 8 32-बिट्स है, और यदि यह 2 से कम हो जाता है, तो यह कोशिश करेगा और एक असाइनमेंट करेगा पढ़ें, ब्रह्मांड को imploding? क्या यह सही है? यदि ऐसा है, तो आप अंक प्राप्त करते हैं, कि पीडीएफ भयानक था (दूसरा एक)। –