• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

البحث في المنتدى

Showing results for tags 'assembly'.

  • البحث بالتاقات

    اكتب الكلمات المفتاحيه بينها علامه الفاصله
  • البحث بكاتب الموضوع

تم إيجاد 6 نتيجة

  1. السلام عليكم ورحمه الله وبركاته منذ فتره بدأت بمشروع لم اكن اعلم بالتحديد ماذا انا بفاعل, قمت بكتابه بعض الكود وأنتهى المطاف بمحاكى Assembly, طبعا المشروع بسيط جدا ليس بمقدار القوه التى تخيلتموها حينما قرأتم كلمه (محاكى اسمبلى :D)  قمت بشرح الجزء الاول في فيديو وان شاء الله مستمر حتى انهى المشروع رابط الفيديو من هنا
  2. اقدم لكم اليوم سلسله دروس عن برمجه انظمه التشغيل باستخدام Assembly 16-bit السلسله مقسمه الى عده اجزاء و الى الان قمت بعمل الجزء الاول و الثانى فقط و لكن ان شاء الله سأقوم بعمل المزيد حتى ننتهى من المشروع المقرر تصميمه و هو نظام تشغيل بسيط شبيه ب MS-DOS ولكن بالتأكيد ليس بقوته الجزء الأول - مقدمه الجزء الثانى - البوت لودر ان شاء الله ساقوم بأضافه كل جديد هنا لكى تعم الفائده, شكرا
  3. السلام عليكم ورحمة  الله تعالى وبركاته. هل هناك أحد هنا يملك هذا الكتاب: assembly language programming and organization of the ibm pc by ytha yu charles marut ؟ لقد بحثت عنه كثيرًا في الإنترنت ولم أجده، تقريبا منذ عامين أو أكثر وأنا أبحث عنه ولم أجد له أثراُ بَعْدُ. إن كان هذا الكتاب متواجدًا عند أحدكم فليرفعه لنا هنا أو فليكتب رابطًا.   واعلموا أن الدّال عن الخير كفاعله. وجزاكم الله خيرًا.   تعديل: هذه هي واجهة الكتاب،،،  
  4. السلام عليكم ورحمة الله وبركاته باستخدام العنونة بمسجلات المقاطع , وكما تقول  ويكيبيديا     يتم إزاحة قيمة مسجل المقطع بمقدار 4 بت ثم جمع مسجل آخر .. المهم السؤال هو : لماذا الحد هو 1Mb أليس من الممكن أن يكون DS=0xFFFF  و DX=0xFFFF وعندها يمكننا عنونة 1114095 بايت ؟
  5. السلام عليكم ورحمة الله وبركاته إذا علمت أن الكود التالي :  #include<cstdio>main(){#include"mostafa36a2.txt" printf("%d %d %d %d\n"); #include"stuff.txt"return 0;}يقوم بطباعة : 4 3 2 1 ولا شيء آخر .. ولا يظهر أي خطأ ... وتتم ترجمته بكل بساطة وسهولة ... فما هو محتوى الملفين mostafa36a2.txt والملف stuff.txt السؤال متاح لمدة أسبوع من الآن ... بالتوفيق :) ملاحظة : السؤال كامل ولا يوجد أي خدعة .. برمجة نظامية .. يرجى عدم طرح الأسئلة ..بل تقديم اجابات مقبولة 
  6. السلام عليكم اليوم كنت أقرا عن الـ D Language http://www.digitalmars.com/d و بالصدفة وجدت معلومة فريدة اجدها لأول مرة: معالجات البنتيوم فيها امر لمعرفة الوقت! الأمر عبارة عن سطر اسمبلي واحد يخزن القيمة في الرجستر eax تلقائيا, و هذا الأمر (حسب ما فهمت) يعطيك عدد دقات ال.. كيف يقولوها .. processor cycles اظن دقات ساعة المعالج, يعني ادق شي مكن تحصل عليه. هذا الأمر هو rdtsc و لتسهيل استخدامه نستطيع بكل بساطة كتابة فنكشن صغير هكذا: inline unsigned int tick(){    __asm    {        rdtsc;    }    //no need for a return statement,    //time is already stored in eax, which is what return does}و عند ترجمة هذا الكود فستصبح مجرد سطر واحد في الأسمبلي, يعني عند استدعاء هذا الفنكشن فكل ما سيحصل هو تنفيذ الأمر rdtsc, فهو inline يعني لا يوجد حتى استدعاء لأي فنكشن, اللهم الا اذا كان الكومبايلر معد عالـ debug, في الفجول سي بلص بلص مثلا, اذا كنت تعمل في الـdebug configuration فسيكون هناك استدعاء لفنكشن حتى مع وجود كلمة inline, اما لو كنت في الـ release configuration, فسيتم تحويل الفنكشن الى inline حتى لو تكن هناك كلمة inline. طبعا انا ضعيف في الأسمبلي, فلا أعرف إذا ما كان هذا السطر مثلا سينفذ كأمر واحد ام كعدة اوامر .. ولا اعرف شي عن طبيعة عمل بنتيوم ولا غيره من هذا الكلام. تستطيع استخدام التوقيت لحساب الفرق بين زمنين هكذا:      unsigned int cpu = tick();    //do something here ..    //basically what you want to time    cpu = tick() - cpu;    cout << "CPU time: " << cpu << endl;اعتقد لا توجد طريقة اسرع او ادق من هذه لحساب الوقت المتغرق لتنفيذ كمية معينة من الكود, فهي اولا تعطيك الوقت نسبة الى المعالج, و ثانيا الكود اللذي يحضر الوقت ليس سوى سطر واحد في الأسمبلي, يعني لا يوجد احتمال ان الكود اللذي ياخذ الوقت هو نفسه يستغرق وقتا اضافيا. الحكاية شفتها اليوم بالصدفة و استفاديت منها, و بصراحة لم اسمع بها ابدا من قبل مع اني بحثت طويلا عن أساليب لاسترجاع قيمة دقيقة لوقت, الا انني لم اجد ابدا اي اشارة لهذا الأمر في البنتيوم. المشكلة الوحيدة هي ان هذا الأمر خاص بالبنتيوم, و قد لا يعمل على اي معالج آخر. ان شاء الله تستفيدون منه.