الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

نسخة محسّنة من memcpy للنسخ في الذاكرة

بدأه Xacker في 10 يونيو 2010 · 4 رد · 1,671 مشاهدة · في المواضيع المميزة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

قام الأخ محمد علاء بكتابة نسخة محسنّة للنسخ في الذاكرة تأخذ بعين الاعتبار الامكانات العديدة للمعالج مثل SSE, MMX, ... عند توفّرها وتقوم بالنسخ باستخدام MOVS أيضاً عند عدم توفّر أيّ مما سبق.

تجدر الإشارة إلى أن الكود مكتوب بالأسمبلي ويعمل في حالة 32 و 64 بت لتحسين الأداء.

لوضع عيارين ناريين في رأسه (لكونه نشره في قسم السي++) *cough* أقصد .. لمناقشته واقتراح المزيد من الأفكار - يرجى مراجعة الموضوع التالي:

/index.php?showtopic=223009&st=0

تحياتي.

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#2

انت لسه زعلان يا أكس، ياراجل دا انا بحبك و علشان كده انا احط سؤال فى القسم الجميل ده

دلوقتى و انا بدور على حل لبعض مشاكل النسخه الجديده اللى بعملها لقيت كود ده جزء منه (اول جزء فيه):

        mov esi, src
        mov ecx, len
        mov ebx, ecx
        shr ebx, 11 // 2048 bytes at a time
        mov edi, dst

loop2k: 
        push edi
        mov edi, tbuf
        mov ecx, 2048
        shr ecx, 6

كل اللى شد انتباهى الكلمه tbuf لإن هى مش متغير و فى نفس الوقت الأسمبلر ميعرفش عنها حاجه و برضه مش موجوده فى مراجع انتل و لا حتى AMD و انا غلبت فيها، محدش يعرف بتاعت ايه دى؟؟

مدونتي: C++ Tips and Tricks

#3

تبا للـ Copy-Paste، يبدو ان اللى أخد الكود نسى ياخد المتغير tbuf معاه

لقيت الكود السليم شكرا لكم جميعا

و الله ولى التوفيق

مدونتي: C++ Tips and Tricks

#4

يبقى أنا لسه زعلان :resentful:

Do as I say, not as I do

We are Anonymous. We are Legion. We don't forgive. We don't forget

#5

طب اصالحك ازاى ؟

مدونتي: C++ Tips and Tricks

مواضيع مشابهة