REX.W उपसर्ग को अनदेखा किया जाता है। 64-बिट मोड में FF /4
ऑपोड में हमेशा 64-बिट ऑपरेंड होता है (जेएमपी आर/एम 64), इसलिए ऑपरेटिंग आकार बदलते उपसर्ग (आरईएक्सडब्ल्यू, 66) का कोई प्रभाव नहीं पड़ता है।
यही कारण है कि यह REX.W उपसर्ग मौजूद है, शायद यह माइक्रोसॉफ्ट के x64 कॉलिंग सम्मेलन के नियमों को अनदेखा करने के अनुरूप है। जंप आयात स्टब प्रभावी रूप से एक निर्देश फ़ंक्शन है, और चूंकि विंडोज़ पर अपवाद अतुल्यकालिक हैं, इसलिए वे किसी भी समय हो सकते हैं, इस फ़ंक्शन को निष्पादित करते समय उत्पन्न होने के अपवाद के लिए यह संभव है। माइक्रोसॉफ्ट कई restrictions on instructions used at the start and end of functions रखता है। विशेष रूप से समारोह को एक उपन्यास के साथ समाप्त होना चाहिए जिसमें केवल कुछ निर्देश शामिल हैं। MSDN पर Kevin Frei's blog अनुसार यदि पिछले अनुदेश एक अप्रत्यक्ष कूद यह REX.W उपसर्ग का उपयोग करना चाहिए है:
एक अन्य ध्यान दें: यदि अंतिम JMP एक आईपी-रिश्तेदार JMP नहीं है, लेकिन एक अप्रत्यक्ष जेएमपी, यह आरईएक्स उपसर्ग से पहले होना चाहिए, ओएस को इंगित करने के लिए दिनचर्या को अनदेखा करें कि कूद कार्य के बाहर की ओर जाता है, अन्यथा, ओएस मानता है कि यह एक ही फ़ंक्शन के अंदर एक अलग स्थान पर कूद है।
REX.W का उपयोग कर के बीच विसंगति के बारे में आया हो सकता है क्योंकि इस ऊपर बताया गया नियम क्या माइक्रोसॉफ्ट आधिकारिक दस्तावेज एक अंतिम जेएमपी शिक्षा का आवश्यकता के साथ पूरी तरह से संगत नहीं है:
केवल एक JMP बयान के सबसेट epilog में स्वीकार्य हैं। ये विशेष रूप से एमडीआरएम मेमोरी संदर्भों के साथ जेएमपीएस की कक्षा के हैं जहां मॉडआरएम मॉड फील्ड वैल्यू 00. मॉड्रम मॉड फील्ड वैल्यू 01 या 10 के साथ एपिलॉग में जेएमपीएस का उपयोग प्रतिबंधित है।
ध्यान दें कि इस के बाद रिश्तेदार जेएमपी निर्देश जो एक ModR/एम एन्कोडिंग का उपयोग नहीं करते शामिल नहीं होंगे जेएमपी का सबसे आम प्रकार के साथ एक समारोह समाप्त करने के लिए है, इसलिए मैं इस पर विश्वास करने के लिए इच्छुक हूँ आधिकारिक दस्तावेज है कि है यहां त्रुटि में
असंगतता के लिए अन्य संभावित कारण हैं माइक्रोसॉफ्ट के अनचाहे हैंडल आयात कूद कूदने वाले विशेष रूप से या आरईएक्स के बिना कूदने वाले स्टब्स हैं। उपसर्ग एक बग है और जब यह अपवाद होता है तो प्रोग्राम को बहुत ही असंभव मामले में समाप्त कर दिया जाएगा जब उन्हें निष्पादित किया जा रहा है तब होता है।
स्रोत
2016-04-22 17:38:08
मुझे लगता है कि आपको इसे इंटेल दस्तावेज़ों में प्रलेखित किया जाएगा। –
यह इंटेल मैनुअल में सूचीबद्ध नहीं है और डिस्सेबलर्स मैंने भी इसका कोई अर्थ नहीं उठाया है। मुझे लगता है कि 'rex.w' सिर्फ अनदेखा किया गया है। – Jester