السلام عليكم
من المهم في تعلم لغة التجميع معرفة كيفية التعامل مع نظام الادخال و الاخراج I\O
و اطرح موضوعا للمناقشة هو مهم للجميع و لي .
اذا كان هناك من يملك المعرفة بما يتعلق بهذا الموضوع فليتفضل بالكتابة
و شكرا لكل من يساعد في هذا المجال
السلام عليكم
من المهم في تعلم لغة التجميع معرفة كيفية التعامل مع نظام الادخال و الاخراج I\O
و اطرح موضوعا للمناقشة هو مهم للجميع و لي .
اذا كان هناك من يملك المعرفة بما يتعلق بهذا الموضوع فليتفضل بالكتابة
و شكرا لكل من يساعد في هذا المجال
السلام عليكم,
وإن كنت قد أوردت جوابي في السؤال الآخر فسأتكرر هنا .
إن I/O مجال واسع ويقصد به كل ما يدخل أو يخرج أو كل علاقة مع باقي أدوات الكمبيوتر ولو أن في غالبية الأحيان يقصد بها قراءة وكتابة الأقراص. سنأخد هدا كمثال مع تشابه الباقي.
حين نشغل الكمبيوتر في البداية وقبل بدء أي سيستم المكلف ب I/O هو البيوس BIOS(Basic Input Outout System) وهدا يوفر لنا مجموعة من الخدمات لأجل هدا مثل int 13h . وحين يبدأ سيستم التشغيل في العمل مثل DOS تبقى دائما خدمات البيوس والدوس يوفر لنا خدمات أخرى تكون سهلة الإستعمال نسبيا . وهنا نكون دائما في Real Mode بحيث يمكن أن نقرأ أو نكتب في القرص مثلا بدون أي مشكل. وهنا طريقتين أن نستعمل Interruptions أو نقرأ مباشرة الكنترولر وهنا نستعمل in و out لقراءة أو ارسال معلومة إلى Port المكلف وهدا يتطلب طبعا معرفة أرقام Port وهده الطريقة صعبة مقارنة مع الأخرى.
ولكن حين نكون في Protected Mode مثل الوندوز وحسب خصائص هدا النظام فهو يمنع علينا أن نتصل مباشرة مع أدوات I/O .كمثال نفترض أنه عندنا برنامجين شغالين في وقت واحد وكلهما يحتاجان بالطبع الشاشة لإبراز النافدة أو المعطيات الخاصة بكل برنامج فمادا سيحدث لو أخد كل برنامج الشاشة وتحكم فيها.
وهنا أضيف أن البروسسور لديه 4 حلقات أسبقية Ring من 0 إلى 3. 0 لديه الأسبقية الأولى وتتقلص هده تدريجيا إلى 3. السيستم أو الكيرنل له اسبقية 0 أو الأسبقية الكبرى أما باقي البرامج فلها الرقم 3 أو الأسبقية الضعيفة.
فحين نقوم ببرمجة عادية نكون في الحلقة 3 وهدا لا يمكننا من أن نبرمج I/O إد هدا ممنوع فإدا قمنا بدلك فإن البرسسور سيحتج ويعطينا إندار خطء ويقفل البرنامج الدي قام بالممنوع. ولنقوم بهدا يجب أن نكون في الحلقة 0 وبما أن VXD تعمل في هده الحلقة سيكون من بين المجالات لأجل هده البرمجة مع العلم أن هناك تقنيات أخرى للقفز إلى الحلقة 0 .
هده مجرد صورة موجزة في انتضار آراء واقتراحات الإخوان.
كيف يتم التعامل مع المنافذ COM ,LPT و اي المقاطعات مختصه بذلك(DOS ام BIOS)؟
السلام عليكم,
الدوس هو يقوم بهده العمليات. وعندك مجموعة من الخدمات يوفرها الدوس لأجل هدا.
مع الأسف ليست على بالي أرقامها ولكن إدا كان لديك ملف أو كتاب لهدا فستجدها.أنا ليس لدي النت بالمنزل وكل هده موجودة هناك فإدا لم تتوفر عليها يمكنني إعطاؤك إياها لاحقا وكما توجد لائحة بالنت لمختلف Interruptions وهي كدلك ليست على بالي الآن ويمكنك البحث عنها حتى المرة القادمة.
بعد بحث في النت لقيت اسم لائحة Interruptions هناك عدة مواقع جرب هدا الرابط :
http://www.ctyme.com/intr/int.htm
هنا تجد اللائحة الشهيرة ل Ralph Brown وإدا لم يعمل عندك هدا الرابط قم بالبحث في النت بالكلمات الآتية :
interruptions list Ralf Brown
وفي هده اللائحة يمكنك أن تبحث عن Interruption بالرقم النوع أو المحتوى.
إلى اللقاء.
هذا الموضوع مغلق.