السلام عليكم
أريد برنامج بسيط جدا بلغة الاسمبلي يحدث مقاطعة (Interrupt)
أملي بعد الله سبحانه وتعالى فيكم
تحياتي
السلام عليكم
أريد برنامج بسيط جدا بلغة الاسمبلي يحدث مقاطعة (Interrupt)
أملي بعد الله سبحانه وتعالى فيكم
تحياتي
لم استوعب نص الموضوع, قبل ان تقوم/ي بالتوضيح راجع قواعد المشاركة بدقة.
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
تقريبا الخ عاوز اي مثال علي اي مقاطعة
المقاطعة : هو مجموعة من الاوامر تقطع تدفق اوامر البرنامج وتنفذ هذه الاوامر ثم تعود الي تسلسل اوامر البرنامج ثانية
mov ax,5 add ax,3 . . . mov al,0eh mov ah,'a' int 10h . . . mov ax,bx
المقاطعة رقم 10 استدعناها عن طريق التعليمة int ولها معاملين في المعامل ah حطينا الحرف اللي احنا عاوزين نطبعه بعد كده بينفز المعالج بأيت التعليمات.
صح؟ :unsure:
ان كنت تريد الكتابة يفضل الرد باللغة العربية الفصحى او على الاقل ان تكون كلماتك مفهومة.
"بأيت" لن يفهمها الجميع على انها تعني "بقية" !!
ايضا بخصوص المقاطعات, كل الخدمات توضع في AH وليس AL, ان كان هناك بارامتر اخر يجب تمريره يمرر عبر AL طبعا وفقا للمقاطعة المستخدمة فبعضها يحتاج BH, DX, CX الخ..
راجع المواضيع المثبتة تجد رابط الى موقع فيه المقاطعات جميعها مع استخدامها.
بخصوص مفهوم المقاطعة, جميعها موجودة فيما يسمى جدول أشعة المقاطعات IVT (Interrupt Vector Table) وعندما يصل التنفيذ الى مقاطعة يتم طلبها منه ومن خلال نوع المقاطعة والقيم الموجودة في المسجلات الموافقة يتم تنفيذها, المقاطعة اعتبرها سلسلة تعليمات بهدف تنفيذ امر ما معرفة سلفا في مكان ما من ملفات النظام ويتم تحميلها عند تشغيل الكمبيوتر لانها تتعلم بـ DOS وبالتالي تلزم لعمليات الـ POST والـ BOOT
هناك امثلة عديدة مرت معنا في مقالات طرحتها من قبل وهناك ملف وضعه الاخ Delta في موضوع يتناول كتابة برنامج تحرير ملفات نصية عبر 16بت تجد فيه استخدام مقاطعات كثيرة يمكنك دراستها.
تم تعديل هذه المشاركة بواسطة Xacker في 27 مايو 2006 في 19:50
Do as I say, not as I do
We are Anonymous. We are Legion. We don't forgive. We don't forget
هذا الموضوع مغلق.