عرفت من المنتدي ان ممكن ادخال كود اسمبلي في مترجم سي عن طريق asm_
انا معنديش اي خلفيه عن الاسملي وعاوز اعرف ان كان في كواد سي بتحتا ج تتكمل بالاسمبلي وهل الاسمبلي مفيد ليه عشان اكمل مشوار احتراف سي؟
عرفت من المنتدي ان ممكن ادخال كود اسمبلي في مترجم سي عن طريق asm_
انا معنديش اي خلفيه عن الاسملي وعاوز اعرف ان كان في كواد سي بتحتا ج تتكمل بالاسمبلي وهل الاسمبلي مفيد ليه عشان اكمل مشوار احتراف سي؟
أخي الكريم
لغة السي توصلك أي مكان؟ بمعنى أنك تستطيع عمل كل شيء تقريبا
ولكن :
قد توصل مرحلة إنك ما تقتنع بطريقة عمل دالة أو تريد تطوير دالة موجودة في النظام
أو تريد عمل شيء لم تجدة في داول النظام
بحاول أوضح لك من الواقع :
برامج الملتميديا الكبيرة تستخدم أكواد إسمبلي إما لبرمجة تعليمات MMX مباشرة أو لتسريع كود معين
برامج التشفير + برامج الحماية تستخدم أكواد إسمبلي مضافة للغة السي
لأنها لم تجد دوال في النظام تخدمها في الكتابة على نفس مقطع الكود الموجود بة البرنامج لأنة ممنوع من نظام التشغيل وبالتأكيد لنفس السبب الحماية :)
وإذا مر عليك كود لبرمجة نظام تشغيل 32 بت
وبالتحديد في مراحل متقدمة جداً وهي برمجة العمليات و المهام ومسجلات التحكم للنظام لوجدت أن لغة السي لا تخدمك لأنها لا تحتوي على تعليمات الإسمبلي مثل SMSW و LMSW ....( هذة التعليمات خاصة بمسجلات النظام )
اقتباسوهل الاسمبلي مفيد ليه عشان اكمل مشوار احتراف سي؟
أكيد إذا أردت البداية في مشوار الإحتراف يجب أن تعرف لغة المعالج الذي تبرمجة
ولا تقتصر كلمة مبرمج على أنك مبرمج نظام :)
وأي توضيح آخر تفضل :
*************************************************
مجموعة مواضيع - إحتراف البرمجة -
ّ~~~~~~~~~~~~~~~~~~~~~~
البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة
آخر المواضيع :
أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات
ثغرة SMS لأجهزة الجوال Siemens 3568i !
أخطاء وثغرات البرامج العربية !!!
سلسلة مواضيع - أمن وحماية مواقع الويب -
E البرمجة المتقدمة X للملفات التنفيذية E
سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة
**************************************************
<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>
**************************************************
تشكر جزيلا يا Jaas ,, لكن :
اقتباستعليمات الإسمبلي مثل SMSW و LMSW ....( هذة التعليمات خاصة بمسجلات النظام )
ماهي ال LMSW وال SMSW ؟؟
السلام عليكم
رداً على الاخ HGB اقول التالى:
معنى SMSW هو Store Machine Status Word و LMSW هو Load Machine Status Word.
Machine Status هى الحاله التى يكون عليها المعالج ولها register خاص بها يسمى CR0 هذا المسجل هو المسؤل عن حالة المعالج, ففيه على سبيل المثال البت الاولى هى التى تحدد إذا كان المعالج يعمل فى حالة Protected mode او real mode.
هذا المسجل فيه ايضاً معلومات عن اى خلل فى الذاكره مثل page fault او خلل فى تنسيق الذاكره alginment checking الخ...
والسلام
تم تعديل هذه المشاركة بواسطة احمد غريب في 24 سبتمبر 2004 في 05:32
لا إله إلا الله محمد رسول الله
busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.
تشكر جزيلا ياأحمد غريب ,, معلومات مهمة فعلا ,,
اقتباسالبت الاولى هى التى تحدد إذا كان المعالج يعمل فى حالة Protected mode او real mode.
ما أعرفه أنه لايمكن المساس بهذا الرجستر من الوندوز xp مثلا بشكل مباشر ,, لكن حسب كلام jaas أن يمكن العبث يهذه الأمور ,, ربما لو دخلنا للKernel Mode ,,
السلام عليكم
حياك الله اخى HGB نعم الانتقال من real mode إلى Protected mode ممكن ولكن العكس غير مسموح به طالما اصبحت فى protected mode.
والسلام
لا إله إلا الله محمد رسول الله
busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.
السلام عليكم,
أعطيك مثالا ندخل فيه رقمين x و y في س++ سنقوم بجمعهما بالأسمبلر ونضع قيمة الجمع في متغير Sum دائما بالأسمبلر وفي الأخير نعرض النتيجة باستعمال cout وأتمنى أن يكون هذا هو ما كنت تطلبه .
#include <iostream.h>
void main()
{
int x,y,Sum;
cout << " input 2 vumbers \n";
cin >> x >>y;
_asm
{
mov eax,y;
mov ebx,x;
add eax,ebx;
mov Sum,eax
}
cout <<"The Sum is : " << Sum <<"\n";
}إلى اللقاء.
شكرا جزيلا للرد السريع والكتير و عد ازنك أخ شيك move يعني مساواة متغيرين و add يعني جمع متغيرين ...صح ؟
بس انت أزاي استخدمة eax و ebx من غير متعلن عنهم .
سؤال تاني للاخ جاز :انا مش هعرف كارت الشاشة 32 بايت من غير الاسمبلي ؟
السلام عليكم
الاخ ميدو eax و ebx و ecx و edx هذه مسجلات وليست اسماء متغيرات, هناك مجموعه من المسجلات التى تستخدم فى الاسمبلى ولمعرفتها عليك ان تدرس لغة الاسمبلى.
المسجلات هى عباره عن ذاكره داخل المعالج تستخدم بطريقه مختلفه عن المتغيرات, وكل مسجل من هذه المسجلات تستخدم بطريقتين, تستخدم احياناً كذاكره لحفظ الدوال واحياناً كل مسجل له وظيفه يستخدم لها فى وقتها, مثال على ذالك eax تستخدم فى عمليات الضرب, و ebx تستخدم كعنوان handle للذاكره, و ecx تستخدم كعداد للحلقات loop counter.
ارجو ان تكون ان اكون قد وفقت فى الرد والله ولى التوفيق.
والسلام
لا إله إلا الله محمد رسول الله
busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.
السلام عليكم
ماشاء الله على الأخوة رد وافي وكافي
ولكن أحب أشرح الموضوع أكثر
بالنسبة للأمر SMSW و LMSW
بإختصار هي تعليمة قرائة وكتابة لمسجل التحكم رقم صفر في نظام التشغيل وهو المسجل CR0 كما ذكر أخونا أحمد
ولتفصيل أكثر عن هذة المسجلات CR0 و CR1 ... و TR وLDT ,LDTR
راجع موضوع ( برمجة نظام التشغيل ) وبالتحديد القسم الثاني من الموضوع على الرابط
المهم المسجل CR0 هو أهم مسجل تحكم في النظام ويتحكم في
1- صفحات الذاكرة وطريقة العنونة
2- التبديل بين المهام
3- نقل عمل المعالج من النمط الحقيقي 16 بت إلى النمط المحمي 32 بت(أهم بت في الأنظمة الحديثة )
ويتحكم في أمور أخرى . نرجع لموضوعنا
بالتأكيد لغة السي لا تصل إلى هذا المسجل ولا حتى تعليمات الإسمبلي المخصصة للنقل مثل تعليمة MOV .. فقط التعليمتين SMSW و LMSW تمكنك من القرائة والكتابة لمسجل التحكم صفر
مارأيكم بمثال ::
إكتب هذا الكود في مترجم سي وترجمة
DWORD osra=0;
char strOSRA[8];
__asm{
SMSW eax
mov osra,eax
}
wsprintf(strOSRA,"%X",osra);
MessageBox (NULL,strOSRA,NULL,MB_OK);أنا ظهر عندي الرقم 8001003B هل تعرف مامعناة ؟
بالتأكيد قيمة مسجل CR0 حول الرقم إلى ثنائي
10000000000000010000000000111011
هذا الرقم يمثل التخطيط PE|MP|EM|TS|ET|---محجوز-------------------|-------|PG
---------------------------- 0 1 2 3 4 ------------------------------------ 31
لاحظ الأرقام من 0 إلى 31 تمثل 32 بت وهو 4 بايت - قيمة المسجل CR0
وهي خصائص المعالج المتقدمة
PG:تعيين الصفحات في الذاكرة بهذا الشكلpG=1 تمكين تعيين الصفحات
ET:نوع اللاحقة:ET=1 معالج 32 بت ET=0 معالج 16 بت
TS:تحويل المهام :TS=1 تمكين التبديل بين المهام
EM:عمل المعالج المساعد الحسابي
MP:مراقبة المعالج المساعد
PE:يضبط البت 1 لتمكين المعالج من العمل في النمط المحمي 32 بت و 0 للنمط الحقيقي
وللتغيير في هذة القيم تطبق نفس المثال مع إستدعاء للتعليمة LMSW
بهذة الطريقة
__asm{
mov eax,0x8001003B
LMSW eax
}وفي الحقيقة سيعمل هذا الأمر في البرامج المصرح لها التي توجد في نفس حلقة نظام التشغيل ( ولكن لم أرى كود لنظام تشغيل يستخدم هذة التعليمة أكثر من مرة )
وتستخدم دائما في بدء التشغيل
بالنسبة لأخونا medo_elkorsan
اقتباسانا مش هعرف كارت الشاشة 32 بايت من غير الاسمبلي
أكيد تعرفها بالسي عن طريق قرائة منطقة معلومات البويس
ولازم يكون مستوى برنامجك مصرح لة بهذة العملية
السؤال الذي يطرح نفسة :: كيف يمكنني منح برنامجي هذا التصريح؟
الجواب : عن طريق بناء سواقة أجهزة
وللمعلومة :: سواقات الأجهزة لا يمكنها الوصول لكل مكان بمعنى أنها يفرض عليها قيود
ولكن بسيطة والسبب : تجنب حدوث خطأ كبير في النظام
وأي إستفسار آخر تفضل :
تم تعديل هذه المشاركة بواسطة jaas في 25 سبتمبر 2004 في 00:58
*************************************************
مجموعة مواضيع - إحتراف البرمجة -
ّ~~~~~~~~~~~~~~~~~~~~~~
البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة
آخر المواضيع :
أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات
ثغرة SMS لأجهزة الجوال Siemens 3568i !
أخطاء وثغرات البرامج العربية !!!
سلسلة مواضيع - أمن وحماية مواقع الويب -
E البرمجة المتقدمة X للملفات التنفيذية E
سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة
**************************************************
<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>
**************************************************
أخي Desigen
هل تقصد بالمسجلات الموسعة EAX , EBX ..
لأننا نبرمج في نمط 32 بت أي نمط وندوز
أما لوكنا نبرمج في نمط 16 بت أي لنظام دوس نكتب المسجلات بهذا الشكل
ax ,bx ..
---
*************************************************
مجموعة مواضيع - إحتراف البرمجة -
ّ~~~~~~~~~~~~~~~~~~~~~~
البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة
آخر المواضيع :
أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات
ثغرة SMS لأجهزة الجوال Siemens 3568i !
أخطاء وثغرات البرامج العربية !!!
سلسلة مواضيع - أمن وحماية مواقع الويب -
E البرمجة المتقدمة X للملفات التنفيذية E
سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة
**************************************************
<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>
**************************************************
تشكر كثيرا يا jaas وأحمد غريب على هذه الاجابات الشافية الوافية كثيرا ,, حول التعليمتين :SMSW و LMSW ,,
وان تم التعرض اليها في رابط البرمجة في قلب نظام التشغيل ,, الموجود في موسوعة jaas ,, أقصد توقيع jaas :)
اقتباسوللمعلومة :: سواقات الأجهزة لا يمكنها الوصول لكل مكان بمعنى أنها يفرض عليها قيود
ستريجني كثيرا جدا يا jaas اذا اجبت على هذا السؤال ,,
ما هي القيود التي تفرض على ال Device Drivers ؟
لنتعرف أكثر على حدود ال Device Drivers ,,
وخذ راحتك في الاجابة كما تريد ,,
والله يعينك ويوفقك :)
آمر أخي HGB
فهذة المواضيع فعلا تفتح النفس :)
أول ما تشغل الجهاز يتسلم نظام البويس العمل بعد أن يقوم بأمور كثيرة وأهمها فحص الأجهزة يسلم القايدة لنظام التشغيل
أول مايشتغل النظام يقوم بتحميل نواة التشغيل و هي عبارة عن برامج إذا صح التعبير
غير موجودة على القرص ؟؟؟؟؟ :)
هي موجودة على القرص ولكن في قطاعات الهارد دسك وهي ليست كباقي الملفات
بمعنى لها إسم وإمتداد ( عبارة عن مجموعة من البيانات مخزنة في قطاعات متتالية )
لا يمكن الوصول لها إلى من خلال عرض محتوى القطاع
المهم هذة الملفات هي أساس النظام وإنسى أمر الملفات الموجودة في مجلد النظام :)
يتم نقل هذة الملفات إلى الذاكرة ويعرف لها مقطع بإمتياز رقم 0 لأنها أول ملفات نقلت للذاكرة
بعد ذلك تقوم هذة النواة برتيب جدول المهام + ترتيب الإنتقال بين المهام
+ جدول الواصفات الشامل + جدول الواصفات المحلي
من إخلال إستخدامها لبقية مسجلات النظام
جدول المهام :
يحتوي على المقاطع التي ستنفذ + بعض الخصائص لترتيب التنفيذ
جدول الواصفات الشامل :
يحتوي على رقم المقاطع التي ستحمل لها البرامج + مستوى الحلقة التي ستعمل بها هذة البرامج + العنوان الحقيقي لهذة البرامج
المهم ما أطول عليك هل لاحظت هذة الأمور والخصائص؟
لايمكن لسواقات الأجهزة الدخول لها ( لايمكن التغير في حلقة أي برنامج + المهام + جداول ترتيب النظام )
وأي شيء ثاني في الجهاز يمكن أن تصل إلية
هذا والله أعلم
*************************************************
مجموعة مواضيع - إحتراف البرمجة -
ّ~~~~~~~~~~~~~~~~~~~~~~
البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة
آخر المواضيع :
أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات
ثغرة SMS لأجهزة الجوال Siemens 3568i !
أخطاء وثغرات البرامج العربية !!!
سلسلة مواضيع - أمن وحماية مواقع الويب -
E البرمجة المتقدمة X للملفات التنفيذية E
سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة
**************************************************
<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>
**************************************************
السلام عليكم
المسجلات فى جمع المعالجات من 386 فما بعد تم تطويرها إلى 32 بت, والبنتيوم من المعالجات الحديثه, إذاً معالجات البنتيوم هى 32 بت. بالتاكيد مسجلات ال 16 مازالت موجوده فى جميع المعلجات والتى تسمى ax,bx,cx,dx الخ ولكن تستخدم فى الحالات الخاصه فقط, ولهذا نلاحظ ان برامج الدوس القديمه يمكن تشغيلها على الانظمه الجديده , كما يمكنك تنصيب dos على المعالجات الجديده مثل بنتيوم 4.
قرات عن المعالجات الجديده انها ستلغى كلاً من 16 بت و 32 بت فى المتقبل وسيبقى فقط 64 بت, وسيكون هناك برنامج ترجمه تفوم يترجم البرامج القديمه إلى 64 بت حتى يتمكن المعالج من تنفيذ اوامرها, اتوقع انه لن يكون فى الامكان تشغيل انظمة التشغيل القديمه فى اجهزه ال 64 بت بما فيهم وندوز إكس بى 32بت, اكيد سمعتوم عن الوندوز اكس بى 64 بت, هذا هو الوحيد من انظمة التشغيل الموجوده حالياً التى يمكن تشغيلها على الانظمه الجديده. ونحن فى إنتظارها .
والسلام
لا إله إلا الله محمد رسول الله
busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.
السلام عليكم
الاخ Desigen الدباجر القديمه والتى كانت تستخدم فى بيئة الدوس بالتاكيد لن تتعرف على المسجلات الموسعه امثال eax ولكن على حد علمى جميع انواع الدباجر الجديده لديها خاصية التعامل معى المسجلات الموسعه, مثل Olledbg و si ولم يواجهنى إلى الان اى دباجر لا يستطيع التعامل معا المسجلات الموسعه.
ننتظر تعليق من الاخ jaas لانه خبير فى الدباجر.
والسلام
لا إله إلا الله محمد رسول الله
busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.
انا كان اصدي في تعريف كارت الشاشة ببرنامج مستقل مش برنامج يستخدمها بعد مايكون النظام خلاص عرف كارت الشاشة .(البرنامج نفسه هو اللي يقوم بالتعريف ) انت قلت ان ده ينفع بالسي بس بالتعامل مع سواقات الاجهزة ..طب ازاي اعمل سواقات للاجهزة ..انا شكلي هوجع دماغك jaas فممكن تديني مواقع بتتكلم عن الموضوع ده او تتفضل وتفهمهولي.
آسف على التأخر في الرد .. كنت مشغول شوية
المهم
بناء سواقات الأجهزة
أول شيء تحتاج حزمة التطوير DDK
كانت موجودة في صفحة موقع مايكروسفت قبل شهر تقريبا
أما الآن فلم تعد موجودة - ولكن أبحث عنها في النت
حجمها كاملة 400 ميجابايت تقريبا
ثاني شيء تحتاج أداة مساعدة لبناء هيكل السواقة ( وهذا الخيار لتسهيل العملية يمكن الإستغناء عنة )
أفضل أداة تجدها هنا
وأي سؤال آخر تفضل
*************************************************
مجموعة مواضيع - إحتراف البرمجة -
ّ~~~~~~~~~~~~~~~~~~~~~~
البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة
آخر المواضيع :
أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات
ثغرة SMS لأجهزة الجوال Siemens 3568i !
أخطاء وثغرات البرامج العربية !!!
سلسلة مواضيع - أمن وحماية مواقع الويب -
E البرمجة المتقدمة X للملفات التنفيذية E
سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة
**************************************************
<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>
**************************************************
طب مفيش مواقع بتتكلم في الموضوع ده عن طريق دروس او اكواد .
علي فكرة الموضوع ده مهم بالنسباي وهيفتح نفسي للتقدم بالسي++ علي اساس ان انت مبتكتش مجرد برنامج كئيب كله tixt .
فهمتني؟ انا عاوز كلام عملي
ملحوظة (انت عندك كام سنة ؟)
عشان اقارن بيني وبينك علي اساس السن ...لو طلعت تدي هأتل نفسي !
اقتباسطب مفيش مواقع بتتكلم في الموضوع ده عن طريق دروس او اكواد .
المواقع كثيرة .. فقط إكتب في ياهو أو جوجل Device Driver Development
وبالنسبة لملاحظتك ... فلا أريدك أن تقتل نفسك :)
أمزح.. عمري تقريبا ؟ دخلت في 20
أشكرك يا مديرنا HGB على المداخلة
لأنك لم تترك خير إلى ودليتنا علية :)
*************************************************
مجموعة مواضيع - إحتراف البرمجة -
ّ~~~~~~~~~~~~~~~~~~~~~~
البرمجة المتقدمة & الهندسة العكسية & برمجة وأمن الأنظمة
آخر المواضيع :
أنظمة اليونكس(Solaris,HP, AIX,SCO)وانواع المعالجات
ثغرة SMS لأجهزة الجوال Siemens 3568i !
أخطاء وثغرات البرامج العربية !!!
سلسلة مواضيع - أمن وحماية مواقع الويب -
E البرمجة المتقدمة X للملفات التنفيذية E
سلسلة مواضيع ثغرات الأنظمة وإختراق الأجهزة
**************************************************
<span style='font-size:14pt;line-height:100%'>الإرادة تحـــقق السيـــادة</span>
**************************************************
حتى أنا عمري قريب منك JASS
بس في إختلاف كبير بين معرفتي و معرفتك
من الأرض إلى السماء
لازم نعمل موضوع المشرفين المميزين
يعطونا السيرة الذاتية المبسطة لهم إلى أن وصلوا إلى مرتبتهم حاليا
شكرا لكم
هذا الموضوع مغلق.