मानक सी फ़ंक्शन 'memcpy' कैसे काम करता है? इसे रैम के एक बड़े क्षेत्र में रैम के एक (बड़े) खंड की प्रतिलिपि बनाना है। चूंकि मुझे पता है कि आप असेंबली में रैम से राम तक सीधे नहीं जा सकते (मूव निर्देश के साथ) तो मुझे लगता है कि यह कॉपी करते समय इंटरमीडिएट मेमोरी के रूप में एक सीपीयू रजिस्टर का उपयोग करता है?memcpy काम के आंतरिक कार्यान्वयन कैसे करता है?
लेकिन यह कैसे कॉपी करता है? ब्लॉक द्वारा (यह ब्लॉक द्वारा प्रतिलिपि कैसे करेगा?), अलग-अलग बाइट्स (चार) या उनके पास सबसे बड़ा डेटा प्रकार (लंबे समय तक डबल में कॉपी करें - जो कि मेरे सिस्टम पर 12 बाइट्स है)।
संपादित करें: ठीक है जाहिरा तौर पर आप सीधे राम को राम से डेटा स्थानांतरित कर सकते हैं, मैं एक विधानसभा विशेषज्ञ नहीं हूँ और सभी मैं सीखा है विधानसभा के बारे में इस दस्तावेज़ से है (X86 assembly guide) जो mov अनुदेश के बारे में खंड में कहा गया है कि आप रैम से राम तक नहीं जा सकते हैं। जाहिर है यह सच नहीं है।
यह मंच-विशिष्ट है। कृपया एक मंच निर्दिष्ट करें। –
मैं लिनक्स, मैक और विंडोज़ (32-बिट, 64-बिट और 32-बिट क्रमशः) का उपयोग करता हूं लेकिन मैंने लिनक्स का उपयोग करते हुए इस सवाल से पूछा। – hddh