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

برنامج عداد، بشكل مصفوفة، اتمنى المساعدة والنصح

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

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

اول شي ابارك لنفسي بعد ان وجدت منتدى لديه قسم assembly :)

ثانيا اشكر جميع الاخوة على ما يقدموه في هذا المنتدى من نصح وتوجيه

اتمنى مساعدتي في هذا البرنامج

فهو مطلوب لدي وقد حاولت ولكن اتمنى منكم تصحيح ما ترونه خطأ او اعطائي فكرة افضل

البرنامج المطلوب لدي هو عداد من صفر الى تسعة او الى خمسة اهم شي يكون عداد

المهندس الذي طلبه مني قال ان اسمه 7 segment7 يبدا من صفر الى تسعة

انا استغربت هذا الاسم بعد ان بحث في الانترنت اعتقد انه اسمه الصحيح timer

هل كتابته كشكل مصفوفة صحيحة مع العلم انه توجد طريقة مختصرة افضل ولكني لم اعرفها

سأذكر المصفوفة ومن لديه الطريقة الاخرى اتمنى مساعدتي فيها

Result   (i) =Num1 ) (i) +Num2 (i)

CODE
Num1 dw 0.1.2.3.4.5.6.7.8.9
Num 2 dw 0
Result dw 0 dup
  CODE
lea di,Result
lea si, Num1
mov bx,0
mov cx,10
the loop
[mox dx,[si+bx
lodsw
add ax,dx
stosw
loop the loop
hlt

تم تعديل هذه المشاركة بواسطة poet في 19 يناير 2007 في 15:49

#2

سلام اخي poet

هلا امكنك ان تشرح لنا اكثر عزيزي poet , فهل مثلا يحسب الى 10 ثم ينفد الكود الموالي , ام فقط يظهر لنا الرقم من 0 الى 10 علي الشاشة, ام شىء اخر’?

#3

انا صممته على اساس من 0-9

ولكن mov cx,10 هي اقصد فيها عدد الخانات اي عشر خانات

#4

انا صممته على اساس من 0-9

ولكن mov cx,10 هي اقصد فيها عدد الخانات اي عشر خانات

#5

اتمنى من اللي عنده فكرة اخرى لطريقة تصميم العداد ان يطرحها

وبالنسبة لهذا البرنامج هل هو صحيح ؟ لاني لم استطع تجربته بسبب مشكله في برنامجي

وهناك برنامج اخر للسمليتر ولكني لا اعرف طريقة تشغيله

انتظر ردودكم اخواني

تم تعديل هذه المشاركة بواسطة poet في 19 يناير 2007 في 23:32

#6

اخي العزيز

وضح لنا ما يقوم به البرنامج بشكل جيد لكي نساعدك

ما هي الفكرة بالضبط ؟؟؟

اشهد ان لا اله الا الله اشهد ان محمدا رسول الله

تحيا مولودية العلمة

#7

السلام عليكم

اعتقد اخي انك فهمت المسئلة خطاء فما ذكرة المهندس هو 7segments هذا الاسم متعارف عليه للدلالة على الارقام الدجتال التى نرها

راجع الرابط التالي لتعرف المقصود... http://stielec.ac-aix-marseille.fr/cours/abati/aff7seg.htm

الشيئ الذي يميز هذه الارقام هو انها تتكون من 7 اضلاع, ولكل رقم من الارقام التى يمكننا ان نكتبها بهذه الارقام شكل معين, بمعنى ان كل ضلع إما ان يكون مضيئاً او غير مضيئ ...

على سبيل المثال الرقم 1 يمكننا ان نكتبه بإضائة الضلع f و الضلع e,

والرقم 2 يكون a,b,g,e و d وهكذا يكنك ان تحدد الاضلاع المضائة بحسب الرقم الذي تريد ان تعرضه...

والسلام عليكم

لا إله إلا الله محمد رسول الله

busbar : يجب ان تدرك انه هناك حد ادنى للمعرفة المطلوبة قبل البدء في عمل أي شئ.

#8

الاخوان اشكركم على الرد

الاستاذ احمد

الهندس يقصد برنامج عداد كما قال لي يبدا من صفر الى العدد تسعة ثم يبدا من جديد وهكذا

مطلوب تصميمه على لغى التجميع assembly

ومن ثم تشغيله على السلمليتر

هل الكود الذي كتبته صحيح

اذا كان لديك كود مختصر اتمنى ان تساعدني

وسأحاول طرح كود اخر واتمنى منك المساعدة وشكرا

#9

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

اخي poet, هل هذا العداد الذي تتكلم عنه يعتبر مستقلا الكترونيا عن الحاسوب , ام فقط تريده على شكل برنامج يعمل داخله , لان كلمة assambly يمكن كذلك استعمالها في برمجة عقول الكترونية مختلفة عن تلك التي بذاخل الحاسوب.

#10
bitofsoul كتب:
السلام عليكم.

اخي poet, هل هذا العداد الذي تتكلم عنه يعتبر مستقلا الكترونيا عن الحاسوب , ام فقط تريده على شكل برنامج يعمل داخله , لان كلمة assambly يمكن كذلك استعمالها في برمجة عقول الكترونية مختلفة عن تلك التي بذاخل الحاسوب.

اهلين اخي الكريم اشكرك على التجاوب

ربما اني ما عرفت اوصل الفكرة مضبوطة لكم بما انكم خبراء في هذا المجال وانا طالب على قد حالي ومعلوماتي على قد حالي

ولكن إن شاء الله طالما اني معكم فانا متطمئن الى الى الخير

انا المطلوب مني بالنص عداد segment7 يبدا العد من واحد الى تسعة او اقل لا مشكلة في ذلك

والمطلوب تصميمه بكود لغة assembly لغة التجميع

وبعد ذلك سوف اقولم بتشغيله على برنامج 8085 Simulator

اتمنى منكم يا أصحاب الخبرة مساعدتي

وبارك الله في اعمالكم

#11

سلام اخي.

حسننا لا اعرف ان كان هذا الكود سيفيذك ام لا.

mov cx,0000h

wait: inc cx

cmp cx,09

jne wait

عندما تنفذ هذه الاسطر خطوة خطوة ستلاحظ انك سوف لن تخرج من هذه العقذة ما دامت cx لا تاخذ القيمة 09 , وبالتالي فان cx يلعب دور العداد لانه في البداية تكون قيمته 00 ثم 01 ثم 02 .......09 .

#12

بارك الله فيك اخوي bitofsoul

ابجربها على الاسمبلر واعطيك خبر

الله يوفقك إن شاء الله

#13

السلام عليكم أخي

فكرة البرنامج بسيطة أخي الكريم

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

	.model small
	.code



	mov dl,30h;هنا الاسكي كود للرقم 0
	mov ah,02h; نجهز الانتربت 2 المسؤول عن طباعة القيمة الموجودة في ال dl 
lop:	int 21h
	inc dl
	cmp dl,39h; نقارن ال dl مع ال9
	je exit; اذا كانت القيمة بعد الزيادة 9 يقفز الى نهاية البرنامج 
	jmp lop; اذا لم تساوي 9 يرجع الى ال lop مرة أخرى


exit:	mov ah,4ch
	int 21h
	end

اتمنى يكون الكود هو المطلوب.

انا مثلك مبتدئ ,

تحياتي

#14

مشكور اخي الحرازي

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…