विंडोज 64 ने xmm6 और xmm7 को सहेजने/पुनर्स्थापित करने के लिए क्यों चुना?विंडोज 64 ने xmm6 और xmm7 को सहेजने/पुनर्स्थापित करने के लिए क्यों चुना?
विंडोज 32 में, आप असेंबली दिनचर्या लिख सकते हैं जो xmm0 ... xmm7 clobbered। लेकिन यदि आप वही असेंबली कोड लेते हैं और इसे विंडोज 64 में चलाते हैं, तो आमतौर पर यह एप्लिकेशन गलती का कारण बनता है क्योंकि वीएस2007 एक्सएम 6 और एक्सएम 7 में डबल-प्रेसिजन मानों को स्टोर करता है।
ऐसा लगता है कि X64 में 16 xmm रजिस्ट्रार xmm0 है ... xmm15 (जबकि एक्स 32 में केवल 8 xmm रजिस्ट्रार हैं), तो माइक्रोसॉफ्ट उपयोगकर्ताओं को xmm0..xmm7 को पकड़ने की अनुमति देने के लिए चुना गया था (ताकि वे पुन: उपयोग कर सकें इसके बारे में सोचने के बिना Win32 से असेंबली दिनचर्या) लेकिन उपयोगकर्ताओं को xmm8 को बचाने/पुनर्स्थापित करने की आवश्यकता है ... xmm15।
तो, अपनी खुद की जिज्ञासा को पूरा करने के लिए, विंडोज 64 ने xmm6 और xmm7 को सहेजने/पुनर्स्थापित करने के लिए क्यों चुना?