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

أبي كود أقدر أغير فيه لون شاشة الاسمبل

مغلق
بدأه المشاكسة في 16 أبريل 2004 · 10 رد · 1,479 مشاهدة · في لغة Assembly لأنظمة 16, 32, 64 بت
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته ..........

ارجو من يعرف حل لمشكلتي ان يساعدني لأنني في ورطة

أبي كود أقدر أغير فيه لون شاشة الاسمبلي ؟؟؟؟؟؟؟؟؟؟

ولقد حاولت في كذا منتدي ولكني لم أجد أجابة عليه

أتمني أن أجد الحل لديكم

أرجو منكم ان تجيوا علي سؤالي ولكم جزيل الشكر......

#2

السلام عليكم,

يا أخي لو توضح مقصودك أكثر.

ماذا تعني بشاشة الأسمبلر. هل تريد تغيير لون الشاشة في تطبيقك . إذا كان ذلك يمكن أن تستعمل Interruption رقم 10 إذا لم تخني ذاكرتي - ليس لدي الآن اللائحة حتى أتأكد من ذلك - ويمكن أن تجد هذا في أي لائحة تعطي أرقام Interruptions . هذا طبعا إذا كنت تبرمج الأسمبلر 16 بايت.

وإذا كنت تقصد شيء آخر وضح أكثر سؤالك

إلى اللقاء.

#3

لائحة أرقام ال interrupts:

http://www.ziplib.com/emu8086help/supporte...html#int10h_00h

أما عن كيفية تغيير لون الشاشة في الأسمبلي، فكنت فأمهلني قليلا فيها.

فكر بطريقة أخرى

#4
; --  to clear the screen and color it.
q10clr proc near
	mov ax, 0600h	; to request scroll screen
	mov bh, 30	; color, yellow on blue
	mov cx, 0000	; from 00,00
	mov dx, 184Fh	; to   24,79
	int 10h 	 
	ret
q10clr endp

تم تعديل هذه المشاركة بواسطة walcom في 18 أبريل 2004 في 21:32

فكر بطريقة أخرى

#5

في بادئ الامر أعتذر لعدم توضحيي لما كان مطلوب

وأشكرك ياأخ walcom شكرا جزيلا ولكن أريد الاستفسار عن

سبب وضعك لي q10clr proc near لهذا الامر

وماسبب وضعك int 10h ولم تضع الامر int 21h

لأنه لم يسبق أن تعاملت مع int 10h

أرجو منك التوضيح وأشكرك مرة آخرى

#6

نسيت أن أقول أن هذا البرنامج مقتبس من كتاب "برمجة الحواسيب بلغة الأسمبلي" المترجم من كتاب The IBM PC Assembly Lnaguage، الباب التاسع: الإدخال والإخراج.

q10clr proc near

كل ما فعلت هو أنني قمت بتقسيم البرنامج لإجراءات procedures، والسبب معروف لدى كل من درس لغة برمجة من قبل.

q10clr هو اسم الإجراء.

proc كلمة محجوزة تفيد تعريف اسم إجراء

near تعني أن مدى بعد الإجراء عن موضع النداء في ما بين ( ما أذكر بالضبط الآن، تقريبا أكبر من 128 بايت وأقل من 32000 بايت).

استخدمت int10h، لأنها....... بصراحة كده،غالبا أستعملها، ليس إلا، و int21h معقدة بعض الشيء. :)

أعذروني لأن ردودي في هذا الموضوع هي مما حاولت جاهدا تذكره مما درسته في مقرر لغة الأسمبلي في الجامعة في سنتي الرابعة ، وأنا الآن في نهاية السنة الخامسة، وتعرفون مشاغلها، فأعذروني قليلا.

فكر بطريقة أخرى

#7

السلام عليكم,

أولا نشكر الأخ walcom على المجهود الذي قام به وأضن أنه أعطى التوضيحات اللازمة فيما يخص proc وكما قال هنا نضع هذا البرنامج وسط Subroutine وكما يمكن أن ندرجه داخل الكود الأساسي مباشرة يعني وسط البرنامج الأساسي هذا من جهة .

ومن جهة أخرى فإن الكثير يستعمل Interruption 10 للفيديو لأن هذه Interruption هي للبيوس Bios عكس 21 التي هي للدوس . والفائدة لإستعمال 10 هي أننا يمكن أن نستعملها حتى قبل أن نشغل الدوس وعلى سبيل المثال نفرض أننا نريد أن نبرمج برنامجا Boot ونريد في هذا أن نغير لون الشاشة وبما أن البوت يبدأ قبل تحميل الدوس فهنا نرى أنه لا جدوى لإستعمال 21 لأنها لم تكن موجودة قبل .

هذا على سبيل المثال وكما يمكن القول أنه يمكن أن نستعمل ما نشاء حسب الضرورة وما نريد الوصول إليه.

إلى اللقاء.

#8

العفو أخ chik والشكر على التذكير.

فكر بطريقة أخرى

#9

السلام عليكم,

سوف أعطي مثالا لتغيير لون الشاشة وتتغير كلما ضغطنا على زر أو نضغط X للخروج حتى نرى هذا في مثال كامل.

وفي الملف المرفق تجدون الكود الكامل والملف Exe وقد يختلف التشغيل حسب كارت الفديو التي في الكمبيوتر ويمكن تغيير Mode للفديو في المكان الذي ذكرته داخل الكود.

ولكل من يريد تغيير شيء يمكنه بناء البرنامج من جديد باستعمال الملفات Masm.exe Link.exe أو Ml.exe والتي قد وضعتها مسبقا في هذا المنتدى.

وفي انتضار أي مقترح أو تفسير.

إلى اللقاء.

Test_Video.zip

#10

السلام عليكم .......

اشكرك أخ walcom علي محاولة التوضيح

مع العلم أنني أدرس حاليا هذا الكتاب IBM PC Assembly Lnaguage ولكننا لم نصل للباب

التاسع وكان مطلوب منا البحث عن الكود ومحاولة فهمه وشرحه ولم أكن أعلم انه موجود

داخل الكتاب .........

وأيضا اشكر الأخ chik وسأحاول فهم الكود وأن تعذر علي فهم شئ منه فأننى سوف

أطلب منك أيضاحه وأعتذر مسبقا أذا كنت سوف أشغل وقتك .....

#11

الشكر للأخ chik على توضيحه الفرق ما بين المقاطعتين 10h و 21h،

تذكرت أن استعمال 10h ينقص قابلية الحمل portability للبرنامج بعكس استعمال 21h، لأنها مقاطعات خاصة بالبيوس الذي يختلف من جاهز لآخر، ولكن تم استدراك هذا الأمر من شركة IBM بوضعها معايير IBM PC وألزمت الشركات المنتجة للأجهزة المتوافقة معها باتباع هذه المعايير.

فكر بطريقة أخرى

هذا الموضوع مغلق.

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